백준 2846 오르막길(with Python)
내가 생각한 Solution
-
실제로 문제의 난이도가 낮게 책정된 쉬운 문제입니다.
-
근데 저는 어렵게 풀었습니다...
-
제 풀이가 이해가 가지 않는다면 조금 더 직관적으로 접근한 친구의 풀이를 참고해보세요!
문제에서 생각해볼 점
- 투 포인터 느낌으로 접근했습니다. (코드를 바로 보셔도 어렵지 않을 것입니다. 대신 주석을 많이 작성했습니다.)
코드 구현
N = int(input())
# hs: heights (높이들...ㅈㅅ)
hs = list(map(int, input().split()))
sv = -1 # 오르막 길 시작 값 초기화
ev = -1 # 오르막 길 마지막 값 초기화
results = []
for i in range(N-1):
# i+1 원소가 오르막길인데 마지막 원소인 경우
if i == N-2 and sv != -1 and hs[i] < hs[i+1]:
results.append([sv, hs[i+1]])
# i 원소가 오르막길 시작인 경우
if sv == -1 and hs[i] < hs[i+1]:
sv = hs[i]
# i 원소가 오르막길 마지막인 경우
if sv != -1 and hs[i] >= hs[i+1]:
ev = hs[i]
results.append([sv, ev])
sv, ev = -1, -1
mV = 0
# 최고로 긴 오르막길 길이 구하기
for sv, ev in results:
if mV < ev - sv:
mV = ev - sv
print(mV)
Author And Source
이 문제에 관하여(백준 2846 오르막길(with Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@daeungdaeung/백준-12437-새로운-달력smallwith-Python-j194yfzr저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)