-
1021 회전하는 큐[덱] 본문
틀렸는데 대충 로직은 맞다.
다시 짜기 귀찮음 + 예시 한개 통과하면 다른 것에서 실패. 즉, 새롭게 짜야하는데 그러기 싫기에 먼 훗날 다시 보는것으로,.
코드:
#include <iostream>
#include <deque>
using namespace std;
int arr[50];
int main()
{
int N, M, cnt = 0;
cin >> N >> M;
deque<int> dq;
for (int i = 0; i < N; i++) dq.push_back(i + 1);
for (int i = 0; i < M; i++)
{
cin >> arr[i];
}
int k = 0;
while (M--)
{
int index;
for (int i = 0; i < N; i++)
{
if (dq[i] == arr[k]){
index = i + 1;
break;
}
}
if (arr[k] == dq.front()) dq.pop_front();
else if (index <= dq.size() / 2 || dq.size()==3)
{
while (dq.front() != arr[k])
{
cnt++;
int reg = dq.front();
dq.pop_front();
dq.push_back(reg);
}
dq.pop_front();
}
else
{
while (true)
{
cnt++;
int reg = dq.back();
if (reg == arr[k])
{
dq.pop_back();
dq.push_front(reg);
dq.pop_front();
break;
}
else
{
dq.pop_back();
dq.push_front(reg);
}
}
//dq.pop_front();
}
k++;
}
cout << cnt;
system("pause");
return 0;
}
'Algorithm > Baekjoon' 카테고리의 다른 글
2579 계단오르기 (0) | 2018.01.30 |
---|---|
1932 숫자삼각형 (0) | 2018.01.30 |
1966 프린터 큐 (0) | 2018.01.16 |
1260 - DFS와 BFS (0) | 2018.01.16 |
10845 (0) | 2018.01.16 |