본문 바로가기
Python/자료구조 & 알고리즘

02. Built-in Sequence Type

by KIha_Jung 2020. 5. 12.

파이썬의 내장 시퀀스 타입

  • 내장 시퀀스(sequence) 데이터 타입은 다음과 같은 속성을 갖는다.

    • 맴버십 연산 : in 키워드 사용 가능
    • 크기(size) 함수 : len(seq) 사용 가능
    • iterability
    • slicing
  • 가변성(mutable) vs 불변성(emutable)

    • 가변형 타입 : 리스트, 바이트
    • 불변형 타입 : 튜플, 문자열, 바이트 배열
  • 얕은 복사(shallow copy) vs 깊은 복사(deep copy)

    • 코드 참조

네임드 튜플(named tuple)

  • 일반 튜플과 비슷한 성능과 특성을 갖지만, 인덱스뿐 아니라 이름으로 참조 가능
  • tuple과 마찬가지로 immutable 하다.

바이트와 바이트 배열

  • 원시 바이트(raw byte)를 처리하는데 사용할 수 있는 데이터 타입이다.
  • 불변 타입 : 바이트(byte)
  • 가변 타입 : 바이트 배열(byte array)
  • 0 ~ 255 범위의 부호 없는 8비트 정수 시퀀스로 이루어진다.

연습문제

  1. 문자열 전체 반전하기

2. 문자열 단어 단위로 반전하기

3. 문자열 압축하기

ex) aaabbbbcc => a3b4c2

4. 문자열 순열

  • 순열(permutation)은 서로 다른 n개 중 r개를 골라 순서를 고려해 나열한 경우의 수이다.
  • 입력으로 들어오는 길이 n의 문자열에서 n개의 문자를 모두 선택하는 경우의 문자열을 나열해보자.
  • 012 3개의 문자를 나열하는 경우의 수는 3P3 = 3 * 2 * 1 = 6 이므로 시간복잡도는 O(n!)이다.

     

회문(Palindrome)

  • 앞과 뒤에서 읽었을 때 동일한 단어나 구
  • ex) bob, 다시합창합시다 ...

'Python > 자료구조 & 알고리즘' 카테고리의 다른 글

05. 데크(deque) & 우선순위 큐(priority queue)  (0) 2020.06.01
04. 컬렉션(Collection)  (0) 2020.06.01
03. 스택(Stack) & 큐(Queue)  (0) 2020.05.26
01. 숫자  (0) 2020.05.08
00. 시간복잡도  (0) 2020.05.08

댓글