아이디어는 결국 2와 1을 같은 횟수 사용해야 된다는 것.
각 나무당 1을 필수적으로 써야할 횟수를 분리시킨다음 2를써야하는 횟수와 1을 써야하는 횟수의 차이(only 2만 있으면 해결 되는 수가 3의 배수고 2를써야하는 횟수가 더 많다면 2를 써야하는 횟수는 1과 2로 나눌 수 있으므로 가능하다.
import sys
input = sys.stdin.readline
N = int(input())
h = list(map(int,input().split()))
two = 0
one = 0
for wood in h:
two += wood//2
one += wood%2
if not (two-one)%3 and two >= one:
print('YES')
else:
print('NO')
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Pyhton] 3780 네트워크 연결 (0) | 2021.08.10 |
---|---|
[백준][Python] 1987 알파뱃 (0) | 2021.08.10 |
[백준][Python] 11066 파일 합치기 (0) | 2021.08.10 |
[알고리즘] 크누스 최적화 : 특정 배열에 쓸 수 있는 조건식 (0) | 2021.08.10 |
[백준][Python] 11438 LCA2 (0) | 2021.08.09 |