Search
Duplicate
📕

회전하는 큐

주차
문제번호
1021
언어
C++
티어
실버
유형
자료구조
nj_Blog
nj_상태
이해도
33%
풀이
사람
이해도 2
13 more properties

문제접근

덱 자료구조 사용
왼쪽으로 가는게 짧은지, 오른쪽으로 가는게 짧은지 계산

놓쳤던 부분

deque은 인덱스 접근이 가능

코드

2024 KB

0 ms

#include <iostream> #include <deque> using namespace std; int main(void) { int n, m; deque<int> dq; int input; int left, right; int answer = 0; ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; for (int i = 1; i <= n; i++) dq.push_back(i); for (int i = 0; i < m; i++) { cin >> input; for (unsigned int j = 0; j < dq.size(); j++) { if (input == dq[j]) { left = j; right = dq.size() - j; break ; } } if (left <= right) { while (true) { if (dq.front() == input) break ; dq.push_back(dq.front()); dq.pop_front(); answer++; } dq.pop_front(); } else { answer++; while (true) { if (dq.back() == input) break ; dq.push_front(dq.back()); dq.pop_back(); answer++; } dq.pop_back(); } } cout << answer; return (0); }
C++
복사