Notice
Recent Posts
Recent Comments
Link
250x250
«   2024/11   »
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
Archives
Today
Total
관리 메뉴

피너클의 it공부방

백준 17608 막대기 (c++) : 피너클 본문

백준

백준 17608 막대기 (c++) : 피너클

피너클 2020. 2. 2. 16:04
728x90
반응형

문제 : https://www.acmicpc.net/problem/17608

 

17608번: 막대기

아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로

www.acmicpc.net

 

가장 오른쪽막대기를 기준으로 잡고

기준 막대기보다 큰 막대기를 찾으면 기준 막대기를 바꾸고 보이는 막대기 개수를 올린다.

 

위 행동을 계속 반복하면 된다.

무조건 하나는 보이기 때문에 처음 값을 1로 잡지 않으면 틀린다.

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
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int n;
vector<int> v;
 
int main()
{
    cin >> n;
    for (int i = 0; i < n; i++) {
        int a;
        cin >> a;
        v.push_back(a);
    }
    int sol = 1, now = v[n-1];
    for (int i = n - 1; i >= 0; i--) {
        if (v[i] > now) {
            sol += 1;
            now = v[i];
        }
    }
    cout << sol << endl;
}                                                        
 
 
 
728x90
반응형
Comments