[ BOJ / Python ] 19539번 사과나무

황승환·2022년 8월 12일
0

Python

목록 보기
437/498

이번 문제는 그리디 알고리즘을 통해 해결하였다. 나무들의 총 합이 우선 3의 배수여야만 문제의 조건대로 수행이 가능하다. 나무 전체의 합을 3으로 나눈 만큼 물을 주게 되기 때문에 그 수만큼 2뿌리기를 할 수 있어야 한다. 이는 전체를 3으로 나눈 값보다 각 나무를 2로 나눈 값의 합이 더 커야만 YES가 가능하다.

Code

n = int(input())
trees = list(map(int, input().split()))
tree_sum = sum(trees)
time = tree_sum//3
if tree_sum%3 != 0:
    print('NO')
else:
    for tree in trees:
        time -= tree//2
    if time > 0:
        print('NO')
    else:
        print('YES')

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글