[비선형자료구조] 트라이

  1. 트라이(Trie)
    1. 문자열 구성
    2. 예제 - 활동 시간 선택
      1. 구현 코드
  2. 관련 문제
    1. 문제1. 백준[2839] 설탕 배달
      1. 작성 코드
    2. 문제2. 백준[1931] 회의실 배정
      1. 작성 코드

트라이(Trie)

문자열을 저장하고 빠르게 탐색하기 윈한 트리 형태의 자료구조
  • 정렬된 트리 구조
  • 문자열 저장을 위한 메모리가 필요하나 탐색이 빠름 – 길이가 N인 문자열 탐색의 시간 복잡도: O(N)

문자열 구성

탐욕 알고리즘은 빠르지만 최적의 답을 보장하지 않는다.
  • 탐욕적 선택 특성(Greedy Choice Property) – 앞의 선택이 이후의 선택에 영향을 주지 않음
  • 최적 부분 구조(Optimal substructure) – 문제에 대한 최적의 답이 부분문제에 대해서도 역시 최적의 답

예제 - 활동 시간 선택

N개의 활동과 각 활동의 시작/종료 시간이 주어졌을 때
한 사람이 최대한 많이 할 수 있는 활동의 수 구하기

ActivityABCDE ActivityCABDE ActivityCBE
시작14246시작21446시작246
종료553710 종료355710 종료3510

구현 코드

image


관련 문제

문제1. 백준[2839] 설탕 배달

image

작성 코드

image


문제2. 백준[1931] 회의실 배정

image

작성 코드

image