jyamethyst21 님의 블로그

백준 16435번- '스네이크버드' (PYTHON 풀이) 본문

CODING 💻

백준 16435번- '스네이크버드' (PYTHON 풀이)

jyamethyst21 2026. 1. 21. 01:36

문제:

 

과일의 개수와 초기 길이 정수, 과일의 높이가 주어질 때 과일을 먹고 길어질 수 있는 스네이크버드의 최대 길이를 출력하면 된다.

 

풀이:

N, L = map(int,input().split())
h = list(map(int,input().split()))
h2 = sorted(h)

for i in range(len(h2)):
    if L >= h2[i]:
        L += 1
    else:
        break
print(L)

우선 문제를 보자마자 정렬을 해야겠다는 생각을 했다. 왜냐면 자기보다 긴 수밖에 없는 경우는 먹지 못하기 때문에, 정렬을 해서 이를 구분하는 게 먼저라고 생각했다.

입력을 3개의 변수에 받고 두번째 줄 입력은 리스트 변환 후 오름차순으로 정렬하였다.

그 다음 반복문을 통해서 정렬된 리스트를 전부 돌건데, 이때 초기 길이 정수보다 작은 경우에는 반복문을 탈출하고 그렇지 않은 경우에만 길이를 1씩 늘리도록 로직을 짜주었다.

마지막으로 반복문을 다 돈 뒤에 L을 출력하면 문제를 풀 수 있다.