[ 문제 ] : https://www.acmicpc.net/problem/1021
1021번: 회전하는 큐
첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가
www.acmicpc.net
[ 문제 접근 ]
[ 최종 코드 ]
#include<iostream> #include<algorithm> #include<vector> #include<deque> using std::cout; using std::cin; using std::vector; int n, m, sum; int left, right; int getCount(std::deque<int>& deq, int val) { int cnt = 0; for (int i = 0; i < n; i++) { if (deq[i] == val) { left = i; right = deq.size() - i; break; } } if (left < right) { for (int i = 0; i < left; i++) { deq.push_back(deq.front()); deq.pop_front(); cnt++; } deq.pop_front(); } else { for (int i = 0; i < right; i++) { deq.push_front(deq.back()); deq.pop_back(); cnt++; } deq.pop_front(); } return cnt; } int main() { std::ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); std::deque<int> deq; cin >> n >> m; for (int i = 1; i <= n; i++) { deq.push_back(i); } while (m--) { int a; cin >> a; sum += getCount(deq,a); } cout << sum; return 0; }
[ Key Point ]
👉
[ 다른 사람 풀이 ]
'PS > BaekJoon' 카테고리의 다른 글
[1504] 특정한 최단 경로 - 최단경로 ★★★☆ / 복습 ○ (0) | 2021.11.28 |
---|---|
[5430] AC - 구현/문자열/덱 ★★☆☆ / 복습 ○ (0) | 2021.11.26 |
[14719] 빗 물 - 스택/투 포인터/구현 ★★★☆ / 복습 ○ (0) | 2021.11.25 |
[17298] 오큰수 - 스택/monotone stack ★★☆☆ / 복습 ○ (0) | 2021.11.25 |
[6198] 옥상 정원 꾸미기 - 스택/Monotone Stack ★★★☆ / 복습 ○ (0) | 2021.11.24 |