백준 7983 내일 할거야 / python

이유참치·2025년 12월 15일

백준

목록 보기
112/248

문제 : 7983

풀이 point

1일부터 연속으로 최대 며칠 동안 놀수 있을지 구하려면, 모든 과제를 처리할 수 있는 최대한 늦게 시작하는 날짜를 구하면 된다.

이때 가장 마감일이 늦는 과제를 먼저 생각해보는 것이 포인트이다.

풀이 방법

가장 마감일이 늦는 순서대로 정렬을 한다. 예제의 경우에는
1 13
3 10
2 8
순서이다.

1-13 과제를 처리하기 위해 하루가 소비된다. 최대한 늦게 시작하는 날짜는 13이다.

3-10 과제를 처리하기 위해 사흘이 소비된다. 최대한 늦게 시작하는 날짜는 8이다.

2-8 과제를 처리하기 위해 이틀이 소비된다. 이때 그 전에 구한 최대한 늦게 시작하는 날짜인 7이 마지막 과제의 마감일인 8보다 앞서 있으므로, 세번째 과제 기준으로 생각하여 6일에 시작하면 된다.

그러면 1-5일까지 쉴수 있다.

코드

#백준, 7983 내일 할거야

import sys

N = int(input())

schedule = []

for i in range(N):
    open, close = map(int, sys.stdin.readline().rstrip().split())
    schedule.append([close, open])

schedule.sort(reverse=True)

day = schedule[0][0]

for close, open in schedule:
    if day >= close:
        day = close - open
    else:
        day -= open

print(day)
profile
임아리 - 대학생

0개의 댓글