N = int(input())
k = list(map(int, input().split()))
max_k = max(k)
when = k.index(max(k))
result = k[0]
for i in range(0, when):
if k[i] > k[i+1]:
result = 0
break
else:
result += k[i+1]
for i in range(when, len(k)-1):
if k[i] < k[i+1]:
result = 0
break
else:
result += k[i+1]
print (result)
✔️풀이
배열에서 가장 큰 값과 그 값의 위치를 찾는다.
max_k = max(k)
when = k.index(max(k))
아래 코드를 보면 알겠지만 배열의 [0]번째가 for문 안에 들어 있지 않아서 result에 먼저 삽입했다.
result = k[0]
가장 큰 값을 기준으로 0부터 큰값, 큰값부터 마지막값으로 나눈다.
각 값들이 이전값보다 크명 0, 아니면 result에 k[i+1]값을 더해준다.
⭐배운점
배열에서 가장 큰 값 위치 찾기
MAX = max(arr) // arr 배열에서 가장 큰 값 찾기
maxIndex = arr.index(MAX) // arr 배열에서 가장 큰 값이 있는 위치 찾기
나는 주먹구구식으로 풀었는데 정해에서는 다른 방법으로 풀었다.
max 이전 값의 오름차순정렬과 max 이후값의 내림차순 정렬이 합친게 기존 정렬과 다르면 0이된다.
일정하거나 감소하기 때문에 가능한 결과이다.
left = arr[:maxIndex] // 0 부터 maxIndex -1까지 출력
right = arr[maxIndex:] // maxIndex부터 끝까지 출력