문제5001--막대기

5001: 막대기

[만든사람 : ]
시간제한 : 1.000 sec  메모리제한 : 128 MiB

문제 설명

아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 \(6,9,7,6,4,6\)이다. 일렬로 세워진 막대기를 오른쪽에서 보면 보이는 막대기가 잇고 보이지 않는 막대기가 있다. 즉 지금 보이는 막대기보다 뒤에 있고 높이가 높은 것이 보이게 된다. 예를 들어, 그림과 같은 경우엔 \(3\)개(\(6\)번,\(3\)번,\(2\)번)의 막대기가 보인다.
\(N\)개의 막대기에 대한 높이 정보가 주어질 때, 오른쪽에서 보아서 몇 개가 보이는지를 알아내는 프로그램을 작성하려고 한다.

채점기준
제출된 프로그램은 여러 개의 테스트 케이스로 평가되며, 맞은 테스트 케이스에 대해서 해당 테스트 케이스에 배정된 점수를 받는다. 모든 테스트 케이스를 맞았을 시 100점을 받는다.
각 테스트 케이스에 대한 배점 정보와 제약 조건은 다음과 같다:
1. (12점) \(N \le 5, h \le 2\)
2. (15점) \(N \le 5\)
3. (36점) \(N \le 1,000\)
4. (37점) 제약 조건 없음.

입력 설명

표준 입력으로 다음 정보가 주어진다.
첫 번째 줄에는 막대기의 개수를 나타내는 정수 \(N(2 \le N \le 100 000)\)이 주어진다.
이어지는 \(N\)줄 각각엔 막대기의 높이를 나타내는 정수 \(h(1 \le h \le 100,000)\)가 주어진다.

출력 설명

표준 출력으로 오른쪽에서 \(N\)개의 막대기를 보았을 때, 보이는 막대기의 개수를 출력한다.

입력 예시 Copy

6
6
9
7
6
4
6

출력 예시 Copy

3
 

게시판

작성자제목(댓글)
글이 없습니다.

출처/분류