본문 바로가기
Algorithm

[구현/수학] 백준 2846 오르막길 - 파이썬(Python)

by jangThang 2022. 5. 23.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    2846번: 오르막길

    상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     최대 오르막길 길이를 구하는 문제입니다. 중간에 높이가 같거나, 낮아지면 오르막길로 인정하지 않습니다.

     

    2 3 3 5

     예를 들어, 위와 같은 수열의 최대 오르막길 길이는 '2'입니다. (3 -> 5)

     중간에 3 3으로 높이가 동일하기 때문에, 2에서 5까지 오르막길로 인정받지 못합니다.

     

     

     

    3. 코드

    # 입력
    N = int(input())
    numlist = list(map(int, input().split()))
    
    # 오르막길
    pre = numlist[0]
    high = 0
    res = 0
    for i in numlist:
        # 이전 높이보다 크면 오르막길
        if pre < i:
            high += i - pre
    
        # 작거나 같으면 다시 리셋
        else:
            res = max(res, high)
            high = 0
        pre = i
    
    # 출력
    print(max(high, res))

     이전 높이와 비교해서 크면 오르막길이고, 낮으면 내리막길입니다.

     저는 이전 높이를 기억하는 pre변수를 통해서, 오르막길 여부를 판별했습니다. 인덱스를 써서 numlist[i-1] < numlist[i] 로 하셔도 무관합니다.

     

     

    star가 되고나서 Tistory

    반응형

    댓글