🧑💻 [Python] 백준 6068 시간 관리하기
Gold 5 - 정렬
하루는 0 시간부터 시작한다
농부가 주어진 일을 끝내기 위해, 얼마나 더 잘 수 있는지 시간을 구하는 것이다
하루를 시작하는 시간을 구하는 것이기 때문에, 시작하는 시간 기준으로 문제를 해결하면 된다
문제 풀이
- 입력을 받을 때, 일을 끝내기 위해 필요한 시간과, 일을 끝내야 하는 시간이 주어진다
- 여기서 일을 끝내야 하는 시간 기준으로 오름차순으로 정렬을 한다
hour
같은 경우, 하루를 시작하는 기준이 0 이니깐, 0부터 시작을 한다- while문을 통해, 일을 끝내야 하는 시간 안에 모든 일들을 할 수 있으면 1씩 더해준다
time
에 일을 끝내기 위해 필요한 시간을 계속 더해준다- 만약 여기서
time
이 일을 끝내야 하는 시간보다 더 커지게 되면, while문을 바로 끝내야 한다
- 만약 여기서
코드
N = int(input())
work = []
for _ in range(N):
work.append(tuple(map(int, input().split())))
work.sort(key=lambda x: x[1])
hour = 0
flag = True
while True:
time = hour
for i in range(len(work)):
time += work[i][0]
if time > work[i][1]:
flag = False
break
if flag == True:
hour += 1
else:
break
if hour != 0:
print(hour - 1)
else:
print(-1)
'알고리즘 > 정렬' 카테고리의 다른 글
[Python] 백준 1931 - 회의실 배정 (0) | 2023.01.13 |
---|---|
[Python] 백준 2437 저울 (1) | 2023.01.11 |
[Python] 백준 1946 신입 사원 (0) | 2023.01.09 |
[Python] 백준 1202 보석 도둑 (0) | 2023.01.06 |
[Python] 백준 1253 - 좋다 (0) | 2023.01.05 |