Queue
https://school.programmers.co.kr/learn/courses/30/lessons/118667
import java.util.*;
class Solution {
public int solution(int[] queue1, int[] queue2) {
int answer = 0;
long sum1 = 0, sum2 = 0;
Queue<Integer> q1 = new LinkedList<>();
Queue<Integer> q2 = new LinkedList<>();
for(int i=0; i<queue1.length; i++) {
sum1 += queue1[i];
q1.offer(queue1[i]);
}
for(int i=0; i<queue2.length; i++) {
sum2 += queue2[i];
q2.offer(queue2[i]);
}
while(answer <= 3 * queue1.length - 3) {
if(sum1 == sum2) {
return answer;
}
if(sum1 < sum2) {
int element = q2.poll();
q1.offer(element);
sum1 += element;
sum2 -= element;
} else {
int element = q1.poll();
q2.offer(element);
sum2 += element;
sum1 -= element;
}
answer++;
}
return -1;
}
}
30분
이런 문제에 있어서 가장 중요한 것은 명확한 경계값 설정임을 느낄 수 있었습니다.