GEB0598

[BOJ 28964] Библиотека

백준 문제 링크 🔍 문제 분석 문제에서는 책을 빌린 날짜 s, 책의 반납기한 e, 책을 읽는 데 걸리는 시간 f가 주어진다. 따라서, 책을 반납해야 하는 기간은 [s + f, e]이다. 책은 하루에 한 권만 반납할 수 있으므로 구간 내에 적절한 지점에서 책을 반납해서 겹치는 지점이 없도록 해야한다. 구간이 여러개 주어지므로 라인 스위핑 알고...

[BOJ 13537] 수열과 쿼리 1

백준 문제 링크 🔍 문제 분석 본 문제는 특정 구간이 주어졌을 때 구간 내에 k이상의 원소의 수를 구하는 문제이다. 만약, 특정 구간이 주어졌을 때 구간 내의 원소가 정렬되어 있다면 이분 탐색을 통해 O(logN)내에 k이상의 원소의 수를 구할 수 있다. 세그먼트 트리의 각 노드가 해당 구간 내의 원소를 정렬한 배열을 나타낸다고 하면, 임의...

[BOJ 21257] Fireworks

백준 문제 링크 🔍 문제 분석 본 문제에서는 성공할 때까지 폭죽을 제작하고 테스트하는 과정을 반복한다. 폭죽의 개수와는 관계없이 현재 시점까지 만들어진 모든 폭죽을 테스트하는데 걸리는 시간은 m이다. 따라서, 매번 num개의 폭죽을 제작하고 테스트한다고 가정한 후 예상 시간을 최소화하는 x를 탐색한다. 테스트의 성공은 확률적으로 결정되므로 ...

[BOJ 27011] Part Acquisition

백준 문제 링크 🔍 문제 분석 문제의 설명을 읽어보면, 1번 노드에서 출발하여 K번 노드에 이르는 최단 경로를 탐색하는 문제로 이해할 수 있다. 문제에서 주어진 그래프는 모든 노드의 가중치가 1인 유향 그래프이므로, BFS알고리즘을 활용한다면 최단 경로를 쉽게 탐색할 수 있다. 출력은 최단 경로의 길이뿐 아니라, 최단 경로를 구성하는 노...

접미사 배열(Suffix Array) 및 LCP(Longest Common Prefix)

🔍 개요 문자열 S에 대하여 S[i:]형태의 문자열들을 문자열 S의 접미사(Suffix)라고 부른다. 따라서, 문자열 S의 길이가 N이라고 한다면, 문자열 S는 서로다른 접미사 N개를 가지게 된다. 이러한 접미사들을 사전 순으로 정렬한 것을 접미사 배열(Suffix Array)이라고 부른다. 접미사 배열을 구하는 가장 쉬운 방법은, 모든 접미사...