문제를 또 잘못 이해 했다. 다들 풀이가 너무 단순해서 뭔가 했더니 역시나...
문제만 두 큐의 합인줄 알았더니 진짜 실제 큐의 행동처럼 값을 꺼내는 것은 큐의 가장 앞에서만 하는 것이고 큐에 값을 넣을때는 마지막 원소에 넣을 수 있는것이었다
배열로 원소가 주어지기 때문에 큐에 넣을때는 순서에 상관없이 넣고 뺄 수 있을 줄 알았다 만약 순서에 상관없이 넣고 뺄수 있다면 더 빠른 순서로도 조합할 수 있을 것이다. q1 :[1, 2, 1, 2], q2: [1, 10, 1, 2] 인경우 7번이 아닌 3번만에 가능하기 때문이다
이 문제는 그렇기 때문에 정말 단순하게 브루트 포스로 풀면 된다.
for (int i = 0; i < queue1.length; i++) {
q1.add(queue1[i]);
q2.add(queue2[i]);
sum1 += queue1[i];
sum2 += queue2[i];
}
while(sum1 != sum2) {
answer++;
if(sum1 > sum2) {
int value = q1.poll();
sum1 -= value;
sum2 += value;
q2.offer(value);
} else {
int value = q2.poll();
sum1 += value;
sum2 -= value;
q1.offer(value);
}
if(answer > queue1.length * 4) return -1;
}