Skip to content

Latest commit

 

History

History
78 lines (57 loc) · 10 KB

File metadata and controls

78 lines (57 loc) · 10 KB

[Gold III] 탑 보기 - 22866

문제 링크

성능 요약

메모리: 4120 KB, 시간: 28 ms

분류

자료 구조, 스택

제출 일자

2024년 4월 27일 02:30:00

문제 설명

일직선으로 다양한 높이의 건물이 총 N$N$개가 존재한다. 각 건물 옥상에서 양 옆에 존재하는 건물의 옆을 몇 개 볼 수 있는지 궁금해졌다.

 i$i$번째 건물 기준으로 i−1$i - 1$, i−2$i - 2$, ..., 1$1$번째 건물은 왼쪽에, i+1$i + 1$, i+2$i + 2$, ..., N$N$번째 건물은 오른쪽에 있다. 각 건물 사이의 거리는 다 동일하다.

현재 있는 건물의 높이가 L$L$이라고 가정하면 높이가 L$L$보다 큰 곳의 건물만 볼 수 있다.

바라보는 방향으로 높이가 L$L$인 건물 뒤에 높이가 L$L$이하인 건물이 있다면 가려져서 보이지 않는다.

번호 1 2 3 4 5 6 7 8
높이 3 7 1 6 3 5 1 7
보이는 건물 번호 2 x 2, 4, 8 2, 8 2,4,6,8 2,4,8 2,4,6,8 x

각 건물에서 볼 수 있는 건물들이 어떤것이 있는지 구해보자.

입력

첫번째 줄에 건물의 개수 N$N$이 주어진다.

두번째 줄에는 N$N$개의 건물 높이가 공백으로 구분되어 주어진다.

출력

 i(1≤i≤N)$i(1 \le i \le N)$번째 건물에서 볼 수 있는 건물의 개수를 출력한다.

만약 볼 수 있는 건물의 개수가 1개 이상이라면 i$i$번째 건물에서 거리가 가장 가까운 건물의 번호 중 작은 번호로 출력한다.