본문 바로가기
PS/BOJ

백준 16497 자바 - 대출 요청 (BOJ 16497 JAVA)

by Nahwasa 2021. 10. 19.

문제 : https://www.acmicpc.net/problem/16497

코드 : https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/16400/BOJ_16497.java

 

  이 문제의 경우, 31일까지 모든 날짜에 대해 현재 대출되어 있는 책의 수를 세보면 간단히 풀 수 있다.

이 때 주의점은 (3, 6)이라면 3일에 빌려서 6일 0시에 딱 반납된다고 생각하면 된다. 즉, (3, 6)과 (6, 8)이 있다면 k=1 일때도 처리할 수 있다는 의미이다. 따라서 (3, 6)이라면 3일에 빌려서 5일까지만 가지고 있다고 생각하면 된다.

 

  그럼 문제에 나온 기본 예시 (1, 2), (3, 6), (5, 8)은 다음과 같이 나타낼 수 있다.

이와 같이 모든 날에 대출되어 있는 책을 배열형태로 나타내보면, 각 날에 몇 권의 책이 대여된 상태인지 알 수 있다. 그럼 가장 많은 책이 대여된 날의 수보다 k가 작다면 대여가 불가한 것이다.

위의 경우 5번째 날에 2권이 대여된 상태여야 하므로, k가 1이면 불가, 2 이상이면 가능하다.

댓글