알고리즘/프로그래머스
[프로그래머스] 택배상자 C++ (Lv.2)
lheunoia
2023. 4. 19. 14:30
https://school.programmers.co.kr/learn/courses/30/lessons/131704
이번 문제는 스택(stack) 문제였습니다.
📝 문제 풀이
1. 1번 상자부터 내릴 수 있으므로 for 문 1부터 순회
2. 스택 top과 현재 상자 번호가 같으면 상자를 내리고 (pop) answer++
📍 택배 기사님이 원하는 순서대로 상자를 담아야 하므로 현재 상자를 가리키는 인덱스는 answer
👩🏻💻 C++ 코드
#include <string>
#include <vector>
#include <stack>
using namespace std;
int solution(vector<int> order) {
int answer = 0;
stack<int> s;
for (int i=1; i<=order.size(); i++) {
s.push(i);
while (!s.empty() && s.top() == order[answer]) {
s.pop();
answer++;
}
}
return answer;
}
반응형