
사실 그렇게 많은 시간을 들이지는 않았다(자고 일어나니까 시험은 이미 시작했는데 저녁 먹어야 했음). 그래도 많이 풀었으니 다행. 전반적으로 문제가 쉬웠는지, 문제를 풀 때 어떤 어려움도 닥치지 않았으므로(...) 그냥 풀이 방법만 나열하겠다.
A. O(N) 안에 풀리긴 할 텐데 귀찮으니 정렬 돌려서 O(NlogN)으로 풀 수 있다.
B. {index, depth, value} 3개의 항목을 관리해주는 struct를 만들고, 그걸 저장하는 스택을 만들자. depth가 1 늘어날 때마다 스택에 쌓아 주고, depth가 줄어들면 줄어든 만큼 pop해주면 끝. 마지막에 스택 비우는 것 잊지 말자.
C. 지문에 장난질 치지 말자. 외국인 학생이 시험 보는 거였으면 어쩌려고... 물론 아니었으니 그렇게 했겠지만... 해시맵 26x26개를 만들자. 예를 들어 'has' 같은 단어는 hashmap['h' - 'a']['s' - 'a']에 key = sorted('has') = 'ahs', value = 'has'를 집어넣는다. 그러면 맨 앞 글자와 맨 뒷글자, 그리고 단어를 정렬한 결과만으로 원본에 접근할 수 있다.
또다른 접근방법으로는 아예 맨 앞글자와 맨 뒷글자와 단어 정렬 결과를 구조체 하나로 저장해 놓은 뒤 그것의 해시 구조체까지 잘 정의해 주면 해시맵을 굳이 26x26개씩이나 안 만들어도 될 것 같다. 근데 구현 귀찮으니 패스.
D. 냅색 문제 + 약간의 제약조건. 제약조건이 false일 때마다 pass해 주기만 하면 구현 가능한 냅색 문제이다.
F. 그냥 다익스트라인 것 같긴 한데, 구현이 너무 길어질 것 같아서 나중에 풀기로 했다. 그리고 그 나중은 다시는 오지 않았다
G. 너무나 전형적인 세그 문제. 그러나 세그 짜기 귀찮았으므로 그냥 pbds 썼더니 시간초과 날 뻔했지만 아슬아슬하게 통과했다. 진짜로 너무 세그의 전형이라 G1 ~ P5 받을 듯
H. 생긴 건 냅색 문제랑 비슷하게 생겼는데 N이 10^18인 부분에서 뭐지...? 싶다가 곡 길이의 제한조건이 1 <= x <= 5인 거 보고 눈치 깠다. 아 이거 점화식 문제구나! 바로 행렬 거듭제곱 짜서 맞음.
'Computer Science > PS' 카테고리의 다른 글
[백준 16224] Path Equality (Diamond III) (0) | 2023.01.11 |
---|---|
2022 ICPC 서울 리저널 후기 (짧) (0) | 2022.11.19 |
KMP 그림 그리면서 구현 (0) | 2022.11.05 |
[백준 14427] 수열과 쿼리 15 (Gold II) (0) | 2022.10.18 |
PS, 코테 입문자들을 위한 백준 가이드 (시간복잡도, 언어별 추가 시간, solved.ac) (0) | 2022.10.11 |
댓글