파이썬 알고리즘 217번 | [백준 19539번] 사과나무🍎 - 그리디

Yunny.Log ·2022년 7월 30일
0

Algorithm

목록 보기
222/318
post-thumbnail

217. 사과나무

1) 어떤 전략(알고리즘)으로 해결?

  • 그리디

2) 코딩 설명

https://cmj092222.tistory.com/33
https://xkdlaldfjtnl.tistory.com/66

<내 풀이>


import sys

n = int(sys.stdin.readline().strip())
# 이하가 뒷뜰에 심은 사과나무의 개수
impossible = True; cnt=0
treelis = list(map(int, (sys.stdin.readline().strip()).split()))
# 갊자가 바라는 i번째 나무의 높이

# 하루에 길이를 총 3 늘이는 것 => 
# 높이의 총 합은 3의 배수(3으로 나눠떨어지기)

if sum(treelis)%3==0 : 
    for i in range(n) : 
        # 1, 2 모두 사용하여 만들어
        cnt+= treelis[i]//2  # 나무에서 2를 사용한 횟수
    
    if cnt >= sum(treelis)//3 : 
        impossible=False
        
if impossible : print("NO")
else : print("YES")

<반성 점>

  • 접근방법을 파악 못했습니다 흑흑

<배운 점>

그리디에서 가능 판별 여부를 묻는 유형이 존재함을 알게됨!

0개의 댓글