https://www.acmicpc.net/problem/2118

 

2118번: 두 개의 탑

첫째 줄에 지점의 개수 N(2 ≤ N ≤ 50,000)이 주어진다. 다음 N개의 줄에는 차례로 두 지점 사이의 거리가 양의 정수로 주어진다. 전체 거리의 총 합은 1,000,000,000을 넘지 않는다.

www.acmicpc.net

투포인터 문제다.

 

풀이

문제에 주어지는 두 지점사이의 거리는 시계방향과 반시계 방향 중 짧은 쪽이 거리가 된다고 한다. 즉 시계방향 기준 반시계 방향 거리라 함은 (전체 길이 - 시계방향 거리) 로 계산이 가능하며 해당 지점의 거리는 둘 중 적은 거리로 정해진다는 것이다.

 

시작 인덱스와 끝 인덱스를 생성하여 구간의 길이를 측정한다. 구간의 길이가 최대거리보다 짧거나 같다면, 끝 인덱스를 한칸 늘린다. 반대로 현재 구간의 길이가 최대값보다 크다면, 시작 인덱스를 증가한다. 

 

정답 코드

'Problem Solving > BOJ' 카테고리의 다른 글

[22862] 가장 긴 짝수 연속한 부분 수열 (large)  (0) 2023.01.19
[1484] 다이어트  (0) 2023.01.18
[1652] 누울 자리를 찾아라  (0) 2023.01.16
[15565] 귀여운 라이언  (0) 2023.01.15
[1337] 올바른 배열  (0) 2023.01.14

+ Recent posts