강의로 돌아가기
김슬기

테스트케이스 6~10번이 도저히 안되는데 왜그럴까요ㅠㅠ

테스트케이스 6~10번이 도저히 안되는데 왜그럴까요ㅠㅠ

작성중인 코드―solution.cpp
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
33
34
35
36
37
38
39
40
41
42
43
#include <bits/stdc++.h>

using namespace std;

int solution(vector<int> order) {
    int answer = 0;
    stack<int> s;
    int cur = 0;
    for(int i=1;i<=order.size();i++) {
        if(i != order[cur]) {
            if(!s.empty() && s.top() == order[cur]){
                s.pop();
                answer++;
                cur++;
                s.push(i);
            }
            else{
                s.push(i);    
            }
        }
        else {
            answer++;
            cur++;
        }
    }

    while(!s.empty()){
        int temp = s.top();
        if(order[cur] == temp){
            answer++;
            cur++;
            s.pop();
        }
        else{
            break;
        }
    }

    if(answer == 0){
        answer = 1;
    }
    return answer;
}
1 개의 답변
낙방여우

반례입니다.
입력값 〉 [3, 2, 1, 4, 5]
기댓값 〉 5

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다.