13576 Prefix와 Suffix P2

더보기

#string #z

 

Z알고리즘 연습용으로 풀었다.

Z알고리즘이란, 각각의접미사와 전체 문자열의 가장 긴 공통 접두사의 길이를 빠르게 구하는 알고리즘으로, O(n)으로 해결할 수 있다.Z알고리즘에 관해선 따로 포스팅을 해보거나 해야겠다. 여기서 더 얘기하면 길어질것 같고..

 

Z알고리즘을 돌려 배열을 만든 뒤, 접미사와 접두사가 일치한지, 그리고 bisect를 활용해 몇번 등장하는지 체크해주었다.

 

http://boj.kr/a8c73387d9d648c598068aa554adf430

32136 소신발언 G1

더보기

#parametric search

 

반대로 생각해 T가 주어 졌을때, 모든 시간안에 얼음을 녹일 수 있는가? 라는 문제로 변경해보면, parametric search으로 T시간안에 녹일 수 있냐 없냐? 문제로 변경하게 된다.  이점을 이분탐색으로 찾아나갈 수 있다

 

추가로 삼분탐색으로도 풀수 있는데, 2차원 그래프에서 y를 녹는 정도 max(D), x축을 i번째 히터의 위치로 둔다면, convex한 형태의 그래프가 나오는데 이 그래프의 극솟값이 최적으로 놔둘 수 있는 위치 i가 된다.

두 방법에 대해 둘다 풀어봤다. 재미있는 문제

 

parametric search

http://boj.kr/e49d28bae70644588301cf277803e28f 

tenary search

http://boj.kr/4a5de21ad8454c478a65ef7a57c32f04   

11662 민호와 강호 G4

더보기

#tenary search

두 사람의 거리차 d를 y축으로 time을 x축으로 둘 때, 그래프의 형태는 아래로 볼록한 convex한 형태로 나타내지고, 이 그래프의 극솟값은 최소거리차이 가 된다.

위 극솟값을 삼분탐색으로 찾아주면 된다.

 

http://boj.kr/1c9f769c1d1d412a82d787d7e9c9a75e

27488 Sum of Two Numbers S2

더보기

#math #ad_hoc

 

n이 주어지면 x, y의 합이 n이 되어야 하고, x, y의 각 자릿수의 합이 최대 1차이가 나는 x, y를 찾는 문제

n의 각 자릿수 / 2가 x,y의 그 자리수가 되어야 하고, 짝수면 그냥 /2 나누면 된다.

만약 홀수 일 때  x,y를 /2, /2+1 두개로 나누어야 하는데 이에 대한 예외처리를 잘 해주어야 한다.

 

"최대" 라는 키워드를 안봐서 무조건 1차이가 나게 해야하는줄 알고 맞왜틀을 좀 한 문제

 

http://boj.kr/69fa722882684894b13221939d5a8e4d

22352 항체 인식 G5

더보기

#graph


BFS, DFS 아무거나 사용하여 그래프 내에 연결되어 있는 component를 찾은 다음,

각 component별 백신의 작용 대상이 될 수 있는지를 검사해야 한다.

 

http://boj.kr/abb4485a04cb4965b254a0c03fbce12a

27028 Distance Queries P5

더보기

#lca

 

lca의 weight가 붙어 있는 버전

direction이 주어지는데, 아~무쓸데없다. 혼동을주기 위한용

lca의 깊이를 dfs로 수행할때 현재 노드까지의 누적 weight를 같이 계산해주자.

lca 전체 코드는 log n으로 수행할 수 있는 템플릿을 사용했다. 

 

http://boj.kr/f5303fc3ee484382906ea347cee1f3ea

3682 동치 증명 P2

더보기

#scc

 

TBD

과제 때문에 바빠 많이 못풀었다.

'ps > Solved' 카테고리의 다른 글

10월 4째주 PS정리  (0) 2024.10.22
10월 3째주 PS 정리  (1) 2024.10.14
10월 2째주 PS 정리  (0) 2024.10.07
9월 4째주 PS정리  (2) 2024.09.24
9월 3째주 PS 정리  (0) 2024.09.16

+ Recent posts