728x90
반응형
SMALL
✏️ 문제
문제 파악
나는 먼저 정렬을 한 후 제일 처음에 온 소는 무조건 프리패스니까 소요시간에 먼저 더해줬다.
그 후에는 두 가지 경우로 나눠서 생각했다. 처음에 온 소가 검문이 끝난 시간 T을 기준으로
- T <= 다음 소의 도착 시간이라면 다음 소의 도착 시간까지 소요시간이 되어야 하므로
→ 소요시간 += (다음 소의 도착 시간 - 소요시간) + 다음 소의 검문 시간 - T > 다음 소의 도착 시간이라면 다음 소가 바로 검문 받을 수 있으므로
→ 소요시간 += 다음 소의 검문 시간
로 나눠서 푸니 해결했다!
알고리즘
- 그리디 알고리즘
- 정렬
코드
import sys
input = sys.stdin.readline
n = int(input())
line = []
for i in range(n):
line.append(list(map(int, input().split())))
line.sort()
time = line[0][0] + line[0][1]
for i in range(1, n):
if time <= line[i][0]:
time += (line[i][0] - time) + line[i][1]
else:
time += line[i][1]
print(time)
728x90
반응형
LIST
'PS > 백준' 카테고리의 다른 글
[Python] 13413번 오셀로 재배치 (0) | 2024.07.24 |
---|---|
[Python] 1817번 짐 챙기는 숌 (0) | 2024.07.24 |
[Python] 1246번 온라인 판매 (0) | 2024.07.23 |
[Python] 9237번 이장님 초대 (0) | 2024.07.20 |
[Python] 1758번 알바생 강호 (0) | 2024.07.20 |