-

1021 회전하는 큐[덱] 본문

Algorithm/Baekjoon

1021 회전하는 큐[덱]

Boogallee 2018. 1. 17. 13:37

틀렸는데 대충 로직은 맞다.


다시 짜기 귀찮음 + 예시 한개 통과하면 다른 것에서 실패. 즉, 새롭게 짜야하는데 그러기 싫기에 먼 훗날 다시 보는것으로,.


코드:


#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
Comments