반응형
[ Contents ]
1. 문제 (링크 참조)
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] 로 하셔도 무관합니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 11023 더하기 3 - 파이썬(Python) (0) | 2022.05.25 |
---|---|
[탐색/BFS] 백준 14940 쉬운 최단거리 - 파이썬(Python) (0) | 2022.05.24 |
[구현/수학] 백준 14489 치킨 두 마리 (...) - 파이썬(Python) (0) | 2022.05.22 |
[구현/수학] 백준 4504 배수 찾기 - 파이썬(Python) (0) | 2022.05.21 |
[자료구조/리스트] 백준 2605 줄 세우기 - 파이썬(Python) (0) | 2022.05.20 |
댓글