https://www.acmicpc.net/problem/18115
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
/******** 전역변수 ********/
/******** 함 수 ********/
int main(void) {
/******** C++ INIT ********/
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
/******** 지역변수 ********/
int input1;
int input2;
int num;
deque<int> card;
stack<int> select;
/******** 구 현 ********/
cin >> input1;
// 카드를 뽑을 순서를 스택에 추가
for (int i = 1; i <= input1; i++) {
cin >> input2;
select.push(input2);
}
// 카드를 뽑을 순서를 역순으로 가져온다
for (int i = 1; i <= input1; i++) {
num = select.top();
select.pop();
// 1이라면 맨 앞에 추가
if (num == 1) {
card.push_front(i);
}
// 2라면 맨 앞에서 두번째에 추가
else if (num == 2) {
card.insert(card.begin() + 1, i);
}
// 3이라면 맨 뒤에 추가
else if (num == 3) {
card.push_back(i);
}
}
// 카드 출력
for (int i = 0; i < card.size(); i++) {
cout << card[i] << " ";
}
}
풀었더니 배경을 얻었다.
'알고리즘' 카테고리의 다른 글
C++ 알고리즘 - 1932 정수 삼각형 (0) | 2025.01.24 |
---|---|
C++ 알고리즘 - 1149 RGB 거리 (0) | 2025.01.24 |
C++ 알고리즘 - 11053 가장 긴 증가하는 부분 수열 (0) | 2025.01.23 |
C++ 알고리즘 - 1921 연속합 (다이나믹 프로그래밍) (0) | 2025.01.22 |
C++ 알고리즘 - 1904 01타일 (0) | 2025.01.22 |