옥상 정원 벤치마킹
면접 대비시간 제한1초메모리 제한128 MB
각 건물에서 오른쪽을 볼 때 자신보다 낮은 건물이 연속으로 몇 채 보이는지 세어 모두 더한다.
문제

도시에 빌딩 개가 일렬로 서 있다. 왼쪽에서 번째 빌딩의 높이는 이다.
각 빌딩의 관리인은 성실해서 다른 빌딩의 옥상 정원을 벤치마킹하려고 한다. 모든 관리인은 자기 빌딩에서 오른쪽 방향으로만 볼 수 있으므로, 번째 관리인은 처음에 번째 빌딩의 옥상을 보려고 한다.
하지만 시야는 막힐 수 있다. 오른쪽을 보다가 자기 빌딩보다 높거나 같은 빌딩을 만나면, 그 빌딩과 그 뒤의 모든 빌딩은 보이지 않는다. 즉 번째 관리인은 자기보다 낮은 빌딩만 연속으로 볼 수 있고, 높이가 이상인 빌딩을 처음 만나는 순간 시야가 막힌다(막는 그 빌딩도 세지 않는다).
모든 관리인이 벤치마킹할 수 있는 옥상 정원의 총 개수를 구하여라.
예를 들어 이고 높이가 인 경우를 그림으로 나타내면 다음과 같다.
=
= =
= - =
= = = -> 관리인이 보는 방향
= - = = =
= = = = = =
10 3 7 4 12 2 -> 빌딩의 높이
[1][2][3][4][5][6] -> 빌딩의 번호
- 1번 관리인(높이 10)은 2, 3, 4번 빌딩을 볼 수 있지만, 5번 빌딩(높이 12)이 자기보다 높아 시야가 막힌다. → 3
- 2번 관리인(높이 3)은 바로 오른쪽 3번 빌딩(높이 7)에 막혀 아무것도 볼 수 없다. → 0
- 3번 관리인(높이 7)은 4번 빌딩만 볼 수 있고 5번 빌딩(높이 12)에서 막힌다. → 1
- 4번 관리인(높이 4)은 바로 오른쪽 5번 빌딩(높이 12)에 막힌다. → 0
- 5번 관리인(높이 12)은 6번 빌딩만 볼 수 있다. → 1
- 6번 관리인은 마지막 빌딩이라 볼 대상이 없다. → 0
따라서 총합은 이다.
입력
- 첫 번째 줄에 빌딩의 개수 이 주어진다. ()
- 이어지는 개의 줄에 각 빌딩의 높이 가 한 줄에 하나씩 주어진다. ()
출력
- 모든 관리인이 벤치마킹할 수 있는 옥상 정원(빌딩)의 개수의 총합을 한 줄에 출력한다.