백준 2846. 오르막길

하얀족제비·2021년 7월 28일
0

접근 방식

  1. 앞 뒤 숫자를 비교한다.
  2. 앞 뒤의 차이가 1 이상이면(오르막길이면)
  3. 그 차이를 임시 변수에 누적해둔다.
  4. (임시변수는 오르막길의 누적값이다)
  5. 그러면서 임시 변수 값에 들어오는 것 중 최대값을 계속 갱신한다.
  6. 내리막길을 만나게되면 누적된 임시 변수 값을 0으로 바꾼다.

코드

N = int(input())
road = list(map(int,input().split()))

tmp = 0 # 오르막길 경사 누적값 담을 임시 변수
maxV = 0 # 갱신할 최대값 변수

for i in range(1,N): # 앞 뒤 비교, 1부터 시작
    slope = road[i] - road[i-1] # 경사 차이
    if slope >= 1: # 차이가 1 이상이면
        tmp += slope # 경사 차이를 누적 시켜준다.
    else: # 내리막길을 만나게되면
        tmp = 0 # 누적된 경사 차이를 0으로 초기화

    if maxV < tmp: # 최대값 갱신
        maxV = tmp

print(maxV)
profile
안녕하세요~ 개발을 꿈꾸는 하얀족제비입니다!

0개의 댓글