역시 코딩테스트 문제는 꾸준히 푸는게 가장 중요하다. 그러기 위해 습관화를 해야겠다고 생각했고, 매일 10시에 문제를 풀도록 하는 구름톤 챌린지 를 병행하기로 했다.
오늘 처음 풀었는데, 첫 문제는 햄버거 문제였다.
문제가 복붙이 안된다 ... ^^
간단히 설명하면 햄버거를 만드는데 가장 맛있는 재료가 사이에 오고 그 위 아래로는 점점 맛없는 재료로 구성되어야 한다. (같거나 작은 값으로) 이렇게 잘 만든 햄버거의 전체 맛을 구해라. 햄버거의 전체 맛은 재료 맛의 합이다. 만약 잘못 만든 햄버거일 경우 0을 출력한다.
첫째 줄에 구름 햄버거에 들어가는 재료 개수 n, 그리고 둘째 줄에 각 재료의 맛을 나타낸 ki가 주어진다.
예시 입력1
5
1 2 3 3 1
예시 출력1
10
예시 입력2
7
1 2 3 5 2 3 1
예시 출력2
0
햄버거의 가장 맛있는 재료를 기준으로 오름차순 혹은 내림차순으로 구성되면 된다. 따라서 가장 맛있는 재료의 index를 찾고, 그걸 기준으로 왼쪽과 오른쪽으로 나눠서 sort된 배열과 같은지 확인했다. 간단한 구현 문제였다.
n = input()
ki = list(map(int,input().split()))
best = max(ki)
bestIdx = ki.index(best)
## 제대로 된 햄버거인지 검증
left = ki[:bestIdx+1]
right = ki[bestIdx:]
if sorted(left) == left and sorted(right, reverse =True) == right :
## 제대로 된 햄버거라면 맛구하기 : 걍 다 더하면 됨
print(sum(ki))
else :
print(0)