[Programmers] 택배상자(Lv.2)

Alice·2023년 6월 18일
0

풀이 소요시간 : 25분

stack 을 사용하는 간단한 자료구조 문제다. 어렵지는 않았지만 반복문 탈출 구현과정에서 약간의 실수가 있었다. 실수 없이 구현하는 연습을 더 해야겠다.


전체 코드

#include <string>
#include <stack>
#include <vector>
using namespace std;

int N;
stack<int> Stack;
int Count = 0;

int solution(vector<int> order) {
    
    N = order.size();
    
    int num = 1;
    for(int i = 0; i < N; i++) {
        
        while(true) 
        {
            if(num < order[i]) 
            {
                Stack.push(num);
                num++;
                continue;
            } 
            else if(num == order[i]) 
            {
                Count++;
                num++;
                break;
            }
            else 
            {
                if(Stack.size() > 0 && Stack.top() == order[i])
                {
                    Count++;
                    Stack.pop();
                    break;
                }
                else 
                {
                    goto result;
                }
                
            }
        }
        
        
    }
    
    result :
    return Count;
}
profile
꾸준한 습관으로 만드는 내면의 견고함

0개의 댓글