백준 2094 강수량


사용한 알고리즘: Brute Force (완전탐색)


  1. Y년도, X년도, 그리고 그 사이의 모든 년도들의 강수량에 대한 정보가 알려져 있다.
  2. X년도의 강수량은 Y년도의 강수량 이하이다.
  3. Y < Z < X를 만족하는 모든 Z들에 대해서, Z년도의 강수량은 X년도보다 적다.

위 3가지 조건을 만족하는지 여부에 따라 true, maybe, false 를 출력하는 문제였습니다.
주어지지 않은 년도가 있고, 이를 잘 가정해서 위 조건을 만족하면 maybe 입니다.

참고로 원문에 "note that the amount of rain during a year can be any nonnegative integer, the limitation on ri is just a limitation on the input" 라는 내용이 있다고 합니다. 강수량이 0 일 수도 있는 것 같습니다. (사실 저는 강수량 0 인 경우를 생각 안했는데 accepted 받았습니다... )

풀이과정은 다음과 같습니다.
(1) <년도, 강수량> 을 pair 로 벡터에 저장해 둡니다.

(2) 벡터를 둘러보며 시작년도, 끝년도 강수량과 그 중간의 강수량의 최대값을 각각 체크해두고, 중간에 빠진 년도가 있는지(maybe 여부 판단) 체크합니다.

(3) 저는 1. 애초에 조건을 만족안하는 경우, 2. 시작,끝년도가 연속된 년도인지, 3. 시작이나 끝 년도의 값이 최소 강수량 (1이라고 생각했습니다...)인 경우, 4. 모르는 값이 잇는경우, 5. 중간에 빠진 년도가 있는경우 로 나누어 모든 경우를 일일히 따져주었습니다.



댓글