728x90
반응형
Python 문제풀이
n = int(input())
a = list(map(int, input().split()))
b = []
min = -1 #오르막길의 시작지점을 저장할 변수
if n==1:
print(0)
for i in range(n-1):
if i==0 and a[i]<a[i+1]: #처음이 오르막길의 시작일 경우
min = a[i]
elif i>0 and a[i]<a[i+1] and a[i]<=a[i-1] and min== -1: #처음이 아닌 오르막길의 시작일 경우
min = a[i]
elif i>0 and a[i]>a[i-1] and a[i]>=a[i+1] and min!= -1: #오르막길이 끝난 경우
b += [a[i]-min]
min = -1
elif i == n-2 and a[i]>a[i-1] and min != -1 and a[i]<=a[i+1]: #끝나가는 부분이 오르막길로 끝나는 경우
b += [a[i+1] - min]
if b == []:
print(0)
exit
else:
result = b[0]
for i in range(len(b)):
if result < b[i]:
result = b[i]
print(result)
조건을 많이 달아서 코드가 조금 지저분합니다.. 주석으로 조건의 설명을 적어놨지만 저도 다시보니 복잡하네요.
min은 오르막길이 시작하는 경우 그 시작지점을 저장해두는 변수이고, 오르막길에 끝날 경우 min에 -1을 넣어 오르막길이 끝났다는 것을 나타내기 위해 사용합니다.
오르막길이 끝났을 경우 (끝난 지점 - min)을 해주면 오르막길의 높이를 알 수 있습니다. 해당 높이를 리스트에 차곡차곡 저장하고 마지막에 오르막길의 높이들이 저장된 리스트에서 최대값을 구하여 출력하면 됩니다.
728x90
반응형
'코딩문제풀이 > 백준' 카테고리의 다른 글
[백준 10214번] Baseball Python 풀이 (0) | 2021.07.05 |
---|---|
[백준 4999번] 아! Python 풀이 (0) | 2021.07.04 |
[백준 2754번] 학점계산 Python 풀이 (0) | 2021.07.04 |
[백준 2576번] 홀수 Python 풀이 (0) | 2021.07.04 |
[백준 1977번] 완전제곱수 Python 풀이 (0) | 2021.07.04 |