본문 바로가기

Coding Test/BOJ

[백준/Python] 19539 사과나무

문제 링크

 

19539번: 사과나무

첫 번째 줄에 모든 나무가 갊자가 바라는 높이가 되도록 물뿌리개를 통해 만들 수 있으면 “YES”를, 아니면 “NO”를 따옴표를 제외하고 출력한다.

www.acmicpc.net

 

문제 풀이

  • 나무가 2만큼 성장하는 물뿌리개를 사용한 횟수와 1만큼 성장하는 물뿌리개를 사용한 횟수가 같아야 한다. 즉, 바라는 높이의 총 합이 3(2+1)으로 나누어져야 한다.
  • 또한, 각 나무 높이에서 2만큼 성장하는 물뿌리개를 최대 얼만큼 사용할 수 있는지 구해야 한다. 만약 나무 높이가 1 3 1 3 1로 주어졌을 때, 각각 0 1 0 1 0 만큼 사용할 수 있다. 하지만 총 사용해야 하는 물뿌리개 횟수는 9 / 3 = 3으로 이 값보다 작아 해당 높이를 만들 수 없게 된다.

 

전체 코드

import sys

n = int(sys.stdin.readline())
trees = list(map(int, sys.stdin.readline().split()))
flag = sum(trees) // 3

count = 0
if sum(trees) % 3 == 0:
    for tree in trees:
        count += tree // 2
    if count >= flag:
        print("YES")
    else:
        print("NO")
else:
    print("NO")
반응형

'Coding Test > BOJ' 카테고리의 다른 글

[백준/Python] 14891 톱니바퀴  (0) 2024.04.03
[백준/Python] 14502 연구소  (0) 2024.03.28
[백준/Python] 2294 동전 2  (0) 2024.03.20
[백준/Python] 15686 치킨 배달  (0) 2024.03.20
[백준/Python] 2230 수 고르기  (0) 2024.03.15