본문 바로가기
Algorithm

[Greedy/그리디] 백준 16435 스네이크버드 - 파이썬(Python)

by jangThang 2022. 9. 18.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    16435번: 스네이크버드

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

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     스네이크버드의 길이와 과일들의 높이가 주어집니다. 스네이크버드가 과일을 1개 먹을 때마다 1씩 길이가 늘어나며, 자신의 길이보다 낮거나 같은 과일들은 먹을 수 있습니다. 스네이크버드가 최대로 자랄 수 있는 길이를 구해야 합니다.

     

    2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결

     

    [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결

     경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '350도'나 됩니다. 자기 자신 빼곤 다 보이기 때문에, 다

    star7sss.tistory.com

     낮은 높이의 과일부터 하나씩 먹어갑니다. 그러면, 스네이크버드가 자랄 수 있는 최대 길이를 구할 수 있습니다.

     

     

     

    3. 코드

    import sys
    input = sys.stdin.readline
    
    # 입력
    n, l = map(int, input().split())  # 과일의 개수, 초기 길이
    height = list(map(int, input().split()))
    
    # 그리디 (작은 과일부터 먹기)
    height.sort()
    for h in height:
        if h <= l:
            l += 1
        else:
            break
    print(l)

     

     

    star가 되고나서 Tistory

    반응형

    댓글