그리디로 해결하였다.
while문을 이용한 무한루프로 눈을 효율적으로 치우는데 결과값이 1440을 넘어가는순간 break를 걸고 -1을 출력한다.
눈이 많이 쌓인 순서대로 정렬해준 뒤 효율적으로 눈을 치워주면 된다.
n = int(input())
house=list(map(int,input().split()))
house.sort()
house = house[::-1]
result = 0
while True:
if result > 1440:
result = -1
break
if n>1:
result+=house[1]
house[0]-=house[1]
house.pop(1)
n-=1
if house[0] == 0:
house.pop(0)
n-=1
house.sort()
house = house[::-1]
elif n==1:
result += house[0]
n-=1
house.pop()
else:
break
print(result)
'백준' 카테고리의 다른 글
[python] 어항 정리 - 23291번 (0) | 2022.12.14 |
---|---|
[python] 별꽃의 세레나데 (Easy) - 26217번 (0) | 2022.12.13 |
평범한 배낭 - 12865번 (0) | 2022.12.10 |
출제비 재분배 - 26145번 (0) | 2022.12.10 |
큐빙 - 5373번 (0) | 2022.12.08 |
댓글