๋ฌธ์
18115๋ฒ: ์นด๋ ๋๊ธฐ
์ํ์ด๋ ์นด๋ ๊ธฐ์ ์ ์ฐ์ตํ๊ณ ์๋ค. ์ํ์ด์ ์์ ๋ค๋ฆฐ ์นด๋๋ฅผ ํ๋์ฉ ๋ด๋ ค๋์ ๋ฐ๋ฅ์ ์์ผ๋ ค๊ณ ํ๋ค. ์ํ์ด๊ฐ ์ธ ์ ์๋ ๊ธฐ์ ์ ๋ค์ 3๊ฐ์ง๋ค. ์ ์ผ ์์ ์นด๋ 1์ฅ์ ๋ฐ๋ฅ์ ๋ด๋ ค๋๋๋ค.
www.acmicpc.net
์ฝ๋
#include <iostream>
#include <deque>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int N; cin>>N;
vector<int>v(N);
deque<int>dq;
for(int i=0; i<N; i++) cin>>v[i];
reverse(v.begin(),v.end());
int num = 1;
for(int i:v){
if(i==1) dq.push_back(num);
else if(i==2){
int temp = dq.back();
dq.pop_back();
dq.push_back(num);
dq.push_back(temp);
}
else if(i==3) dq.push_front(num);
num++;
}
while(!dq.empty()){
int out = dq.back();
cout<<out<<' ';
dq.pop_back();
}
}
ํ์ด
deque๋ฅผ ํ์ฉํ๋ ๋ฌธ์ ์ ๋๋ค.
์ด๊ธฐ ์ํ๋ฅผ ์์์๋ถํฐ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ์นด๋๋ฅผ ๋ด๋ ค๋์ ๋ ์ฌ์ฉํ ๊ธฐ์ ๋ค์ ์ ๋ ฅ๋ฐ์ reverse ์์ผ์ค๋๋ค.
์นด๋์ ์๋ฅผ deque์ back, ์๋๋ฅผ deque์ front๋ผ๊ณ ๊ฐ์ ํ๊ณ ํ์์ต๋๋ค.
- 1๋ฒ์งธ ๊ธฐ์ ์ด๋ฉด deque์ back ๋ถ๋ถ์ ์ฝ์
- 2๋ฒ์งธ ๊ธฐ์ ์ด๋ฉด deque์ ๋ ๋ฒ์งธ back ๋ถ๋ถ์ ์ฝ์
- 3๋ฒ์งธ ๊ธฐ์ ์ด๋ฉด deque์ front ๋ถ๋ถ์ ์ฝ์
๊ทธ ํ ์์์๋ถํฐ deque์ ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 19537๋ฒ - ์ธ์ด๋ฒ๊ฐ๊ฐ์ดํ (0) | 2022.06.20 |
---|---|
[๋ฐฑ์ค,c++] 10546๋ฒ - ๋ฐฐ๋ถ๋ฅธ ๋ง๋ผํ ๋ (0) | 2022.06.19 |
[๋ฐฑ์ค,c++] 5430๋ฒ - AC (0) | 2022.06.19 |
[๋ฐฑ์ค,c++] 5397๋ฒ - ํค๋ก๊ฑฐ (0) | 2022.06.03 |
[๋ฐฑ์ค,c++] 1918๋ฒ - ํ์ ํ๊ธฐ์ (0) | 2022.06.03 |
[๋ฐฑ์ค,c++] 2493๋ฒ - ํ (0) | 2022.06.03 |
๋๊ธ