본문 바로가기

Coding/백준

17608번 막대기

 간단한 문제

 

 맨 오른쪽 값을 기준으로 왼쪽으로 가면서 최대값이 바뀔때마다 카운트해주면 된다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#define MAX 100000
 
using namespace std;
 
int N;
int height[MAX];
int cnt;
 
void solved() {
    int num = height[N - 1];
 
    for (int i = N - 2; i >= 0; i--) {
        if (num < height[i]) {
            cnt++;
            num = height[i];
        }
    }
    cout << cnt + 1;
}
 
int main() {
    cin >> N;
 
    for (int i = 0; i < N; i++) {
        cin >> height[i];
    }
 
    solved();
 
    return 0;
}
cs

'Coding > 백준' 카테고리의 다른 글

2357번 최솟값과 최댓값  (0) 2021.03.09
17609번 회문  (0) 2021.03.07
12865번 평범한 배낭  (0) 2021.03.04
10874번 이교수님의 시험  (0) 2021.03.03
1766번 문제집  (0) 2021.03.03