백준(Python) 풀이/그리디 알고리즘

백준(Python) 16435번 스네이크버드 풀이

개발윗미 2021. 12. 14. 09:56

Python으로 구현한 16435번 스네이크버드 문제 풀이입니다.

 

https://www.acmicpc.net/problem/16435

 

16435번: 스네이크버드

첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기 길이 정수 L (1 ≤ L ≤ 10,000) 이 주어집니다. 두 번째 줄에는 정수 h1, h2, ..., hN (1 ≤ hi ≤ 10,000) 이 주어집니다.

www.acmicpc.net


n, l = map(int, input().split())
fruit = list(map(int, input().split()))
fruit.sort()

for i in range(len(fruit)) :
  if l >= fruit[i] :
    l += 1

print(l)

 

1. 반복문을 통해 fruit 리스트에 존재하는 과일의 높이 값을 하나씩 확인한다.

 

2. 조건문을 통해 현재의 스네이크버드의 길이(l)가 현재 확인하고 있는 과일의 높이보다 크거나 같을 경우 먹을 수 있기

 

   때문에 l에 1을 더한다.

 

3. 반복문 수행이 모두 끝나면 스네이크버드의 길이(l)을 출력한다.