중요 지식


stack - 빠른 접근과 마지막에 보내진 값부터 먼저 보기 위함

코드


#include <iostream>
#include <stack>

using namespace std;


int main(){
    int N;
    stack<int> numbers;
    int max=0, count=0;

    cin >> N;

    for(int i = 0; i < N; i++){
        int h;
        scanf("%d", &h);
        numbers.push(h);
    }

    while(!numbers.empty()){
        int num = numbers.top();
        numbers.pop();

        if(max < num) {
            max = num;
            count++;
        }
    }

    cout << count;
  
    return 0;
}

풀이


1. 스택에 값을 넣는다

2. 스택이 빌 때까지 값을 하나하나 꺼낸다 

3. 가장 큰 값을 구하면서 구해질때마다 count++을 한다 

4. count 출력

+ Recent posts