Introduction

본 포스트는 알고리즘 학습에 대한 정리를 재대로 하기 위하여 남기는 것입니다. 더불어 기본 내용은 나동빈 저의 〖이것이 취업을 위한 코딩 테스트다〗라는 교재 및 유튜브 강의의 내용에서 발췌했고, 그 외 추가적인 궁금 사항들을 검색 및 정리해둔 것입니다.

문자열 자료형

문자열 자료형의 개요

  • Python 은 문자열을 사용하는 부분에서 다른 프로그램 언어로 사용하는 것과 다르게 굉장히 강력한 기능들을 갖고 있습니다.
  • 문자열 변수의 초기화 : 다른 프로그램 언어 중 큰 따옴표("")와 작은 따옴표(”) 를 구분하여 의미를 부여하는 경우가 있으나, Python은 큰 구분이 없습니다.
  • 단, 문자열 안에 다른 따옴표를 넣는 부분에선 사용에 구분이 필요합니다.
    • 전체 문자열을 감싸는 따옴표가 큰 따옴표이면 작은 따옴표를 사용해야 하며, 그 반대는 동일하게 반대로 생각하면 됩니다.
    • 혹은 백슬래쉬(\)를 사용하면 됩니다.(이러한 부분은 다른 프로그램 언어와 유사합니다.)
# 문자열 자료형의 기초적인 구조 예제
data = 'Hello World' #초기화는 어떤 따옴표도 상관이 없다.
print(data)

data = "Don't you know \"python\"?" #escape 형으로 표현이 가능하다.
print(data)
$
Hello World
Don't you know "python"?

문자열 연산

  • 문자열 변수의 덧셈을 할 수 있다. 이 경우 연결(Concatenate) 됩니다.
  • 문자열 변수를 특정한 양의 정수와 곱하는 경우, 문자열 값만큼 자기 자신을 더합니다.
  • 문자열에 대해서도 인덱싱, 슬라이싱을 이용가능 합니다. (단, 특정 인덱스의 값을 변경할 수는 없습니다(Immutable))
a = "Hello"
b = "World"
print(a + " " + b)

a = "String"
print(a * 3)

b = "ABCDEF"
print(b[2:4]) #슬라이싱 예제
$
Hello World
StringStringString
CD

튜플 자료형

튜플 자료형의 개요

  • 튜플 자료형은 리스트와 유사한 형태를 갖고 있는 자료형 입니다. 단, 문법적 차이가 존재합니다.
    • 튜플은 한 번 선언된 값을 변경할 수 없습니다.
    • 리스트는 대괄호 ’[]’ 를 이용하지만, 튜플은 소괄호 ’()’ 를 이용합니다
  • 튜플은 리스트에 비해 기능이 간소화 되어 있기 때문에, 그만큼 메모리 사용량을 줄일 수 있다는 장점을 갖고 있습니다.
a = (1, 2, 3,4, 5, 6, 7, 8, 9)
print(a[3])
print(a[1:4])
a[5] = 0
4
(2, 3, 4)
Traceback (most recent call last):
  File "/Users/haryu/workspace/Python_study/algorithm/test.py", line 4, in <module>
    a[5] = 0
TypeError: 'tuple' object does not support item assignment
# 아주 친절하게 자료형 에러가 났다고 알려줍니다.

튜플의 활용 방안은?

  • 튜플의 자료형은 일반적인 리스트보다 제한적인 만큼 사용의 방법에 대해 이해할 필요가 있습니다.
  • 가장 핵심적인 사용 방법은 (수정이 필요 없는) 서로 다른 성질의 데이터를 묶어서 활용하는데 효과적입니다.
    • 최단 경로 알고리즘과 같은 경우 (비용, 노드번호)의 형태로 튜플 자료형을 한다면 편리하게 자료 저장 및 사용이 가능합니다.
  • 데이터 나열을 해싱(Hashing)의 키 값으로 사용시, 변경이 불가능한 만큼 키값 활용이 가능합니다.
  • 결국 핵심적인 포인트가 수정되지 않는 다는 점인 만큼 최초 초기화 이후 계속적으로 사용은 하나 메모리 최적화가 필요한 자료들의 경우 활용한다고 생각하면 좋습니다.

🧑🏻‍💻 알고리즘 박살내기 시리즈🧑🏻‍💻