💡문제접근
- 소가 농장에 도착한 시간과 농장에 도착해서 검문을 받는 시간을 리스트에 같이 저장하고 리스트를 1차적으로 도착시간을 기준으로 오름차순 정렬한 후 2차적으로 검문시간을 기준으로 오름차순 정렬을 수행했다.
- 소가 도착한 시간과 검문을 받는 시간을 더한 총 시간이 그 다음 소가 도착한 시간보다 적게 걸린다면 다음 소가 도착한 시간과 검문을 받는 시간으로 값을 바꿔주고 만약 많이 걸린다면 그 다음 소가 대기했다가 검문을 받는 시간만 더해주면 된다.
💡코드(메모리 : 30616KB, 시간 : 36ms)
N = int(input())
li = []
for _ in range(N):
arrival, checkpoint = map(int, input().split())
li.append([arrival, checkpoint])
li = sorted(li, key = lambda x : (x[0], x[1]))
time = li[0][0] + li[0][1]
for i in range(len(li)-1):
if li[i+1][0] > time:
time = li[i+1][0] + li[i+1][1]
else:
time += li[i+1][1]
print(time)
💡소요시간 : 8m