본문 바로가기
백준

눈 치우기 - 26215번

by 청원뿔세포 2022. 12. 12.

그리디로 해결하였다.

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

댓글