728x90

2024/05/15 2

[C++][BOJ] 9935 문자열 폭발 :: 문자열 비교(stack, erase)

폭발, 짝짓기 문제는 stack을 떠올리자. [문제]https://www.acmicpc.net/problem/9935 문자열에 폭발 문자열이 있다.폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다.모든 폭발이 끝난 후에 어떤 문자열이 남는지 구해보자. 남아있는 문자가 없는 경우 "FRULA"를 출력하자. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다.폭발 문자열의 길이는 1보다 크거나 같고, 36보다 작거나 같다.두 문자열은 모두 알파벳 소문자와 대문자, 숫자 0, 1, ..., 9로만 이루어져 있다. [풀이]문자열의 길이가 매우 기므로, 완전탐색으로는 풀 수 없다.문자열 비교를 위해 stack 자료구조나 erase 함수를 이용하여 for문 하나..

[C++][BOJ] 1931 회의실 배정 :: 라인 스위핑

구간이 나오면 정렬!을 떠올리자. 어느정도의 복잡도를 감소시킬 수 있다. [문제]https://www.acmicpc.net/problem/1931 각 회의에 대해 시작시간과 끝나는 시간이 주어져 있을 때,각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾자. 회의의 수 N(1 ≤ N ≤ 100,000)시작 시간과 끝나는 시간은 2^31-1보다 작거나 같은 자연수 또는 0 [해결방법]회의의 수가 최대 100,000 개 이므로 완전탐색으로는 풀 수 없다. Greedy 로 풀어야 한다.특히, 구간이 주어지면 정렬을 생각하자. 라인스위핑 문제라 부른다. 1) 시작 시간을 기준으로 정렬2) 끝나는 시간을 기준으로 정렬3) 회의 시간을 기준으로 정렬 위 3가지 처럼 모든 풀이방법을 생각하..

728x90