이 문제는 이 큐에 있는 위치를 리턴해야 하는데 이 위치가 어디에 있냐에 따라서 뒤에서 부터 꺼내거나 앞에서 부터꺼내거나를 정해야 한다. 대부분 indexOf로 찾는데 이 API는 linkedlist에만 존재 한다
...
for (int i = 0; i < m; i++) {
// 찾아야 하는 값
int k = arr[i];
// 찾아야 하는 값이 앞에 없으면
while(k != d.getFirst()) {
// 큐에 상대적으로 앞에 있으면
if (d.indexOf(k) <= d.size() / 2) {
int front = d.pollFirst(); // 가장 앞에 있는 것을 꺼내서
d.addLast(front); // 가장 마지막에 넣어주고
} else {
int tail = d.pollLast(); // 가장 마지막에 있는것을
d.addFirst(tail); // 가장 앞에 넣어준다
}
answer++;
}
// 찾아야 하는 값이 앞에 있으면 꺼낸다
if (k == d.getFirst()) {
d.pollFirst();
}
}
...