https://www.acmicpc.net/problem/1021
앞 뒤로 출력한다는 점에서 STL deque를 사용하는 것을 알 수 있었다.
https://www.acmicpc.net/problem/1021
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <stack>
#include <queue>
#include <cmath>
#include <deque>
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
deque<int> d;
vector<int> v;
int n, m, count = 0;
int idx;
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
d.push_back(i);
}
for (int i = 0; i < m; i++) {
int x = 0;
cin >> x;
v.push_back(x);
}
int closeBack = d.back() - v.front();
int closeFront = abs(d.front() - v.front());
bool bcloseBack = closeBack < closeFront;
while (v.size() != 0)
{
if (v.front() == d.front()) {
v.erase(v.begin());
d.pop_front();
if (v.size() != 0) {
for (idx = 0; idx < d.size(); idx++) {
if (v[0] == d[idx]) {
bcloseBack = d.size() - idx < idx ? true : false;
break;
}
}
}
continue;
}
if (bcloseBack) {
int temp = d.back();
d.pop_back();
d.push_front(temp);
count++;
}
else {
int temp = d.front();
d.pop_front();
d.push_back(temp);
count++;
}
}
cout << count;
return 0;
}
'콘솔창 & 윈도우창 > 코딩 테스트' 카테고리의 다른 글
[백준 실버 5] 1427 소트인사이드 (0) | 2024.10.23 |
---|---|
[백준 골드2] 1377 버블 소트 (1) | 2024.10.18 |
[실버3] 17253 삼삼한 수 2 (0) | 2024.10.18 |
[백준 실버1] 11286 절대값 힙 (0) | 2024.10.17 |
[백준 실버4] 2164 카드2 (0) | 2024.10.17 |