[백준] 1021번 회전하는 큐 (C++, DEQUE)
728x90
반응형
왼쪽으로 빼는게 더 적은지 오른쪽으로 빼는게 더 빠른지 본 뒤 해당 위치로 이동시켜준다 (덱 사용)
뒤로 빼는 경우 맨 뒤 위치에서 앞으로 이동시켜주는 것까지 포함이라 (앞에서만 빼므로) +1 해준다.
#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <vector>
#include <string>
#include <stack>
#include <deque>
using namespace std;
int n;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n,m,x;
deque<int> dq;
cin >> n >> m;
for (int i = 0; i < n; i++) {
dq.push_back(i+1);
}
int sum = 0;
for (int i = 0; i < m; i++) {
cin >> x;//위치
int left = 0,right=0;
for (int j = 0; j < dq.size(); j++) {
if (x == dq[j]) {
break;
}
left++;
}
for (int j = dq.size()-1; j >=0; j--) {
if (x == dq[j]) {
break;
}
right++;
}
right += 1;
if (left<=right) {
sum += left;
while (left--) {
dq.push_back(dq.front());
dq.pop_front();
}
dq.pop_front();
}
else {
sum +=right;
while (right--) {
dq.push_front(dq.back());
dq.pop_back();
}
dq.pop_front();
}
}
cout << sum << "\n";
return 0;
}
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 1012번 유기농 배추 (C++, BFS) (0) | 2021.10.06 |
---|---|
[백준] 5430번 AC (C++ , DEQUE) (0) | 2021.10.05 |
[백준] 6198번 옥상 정원 꾸미기 (stack, c++) (0) | 2021.10.05 |
[백준] 5397번 키로거 (리스트, c++) (0) | 2021.09.27 |
[백준] 3273번 두 수의 합 (배열, 포인터 c++) (0) | 2021.09.24 |
TAGS.