카테고리 보관물: 스터디

Trie

트리(Trie) 자료구조

이 글에서는 Tree와의 구분을 위해 Trie라는 영문 표기를 사용합니다. 이 둘은 똑같이 트리1라 발음하며, 오타가 아닌 서로 다른 자료 구조입니다.

Trie는 특히 영단어들을 저장하는데 유용한 자료구조로 다음과 같은 장점을 가진다.

  • 값을 찾는 것은 최악의 경우에서 더 나은 시간 복잡도를 보인다.
  • 해시테이블과는 달리 키 충돌을 염려하지 않아도 된다.
  • 특정한 요소에 다다르는 경로를 찾기위한 부가적인 해시 알고리듬을 요구하지 않는다.
  • 트리 자료구조는 알파벳순으로 정렬하기가 매우 쉽다.

Continue reading “Trie” »

(Swift) – enum

Emumerations

“열거”타입은 임의의 관계를 맺는 값들을 하나의 타입으로 묶어서 타입-안전한 방식으로 다룰 수 있게 해준다. C에서도 enum 키워드를 이용해서 열거체를 선언할 수 있었는데, C의 열거체는 개별 정수에 대해서 다른 이름을 붙인 상수처럼 취급했다. 반면 Swift의 열거타입은 보다 유연하며 열거 타입 내의 개별 케이스가 단일 값을 대신하는 수준을 넘어선다. 각 케이스는 고유의 raw 값을 가질 수 있는데 이는 비단 정수 뿐만 아니라 문자나 문자열, 정수 및 실수값을 가질 수 있다. Continue reading “(Swift) – enum” »