문제 - 두 큐 합같게 만들기
import java.util.*;
//queue1,queue2의 현재 합산을 계산하면서 평균 값보다 큰 경우 pop(), 나머지 insert()
//같게 만들 수 없는 경우
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 += (long)queue1[i];
sum2 += (long)queue2[i];
q1.offer(queue1[i]);
q2.offer(queue2[i]);
}
while(true)
{
if(sum1 == sum2) break;
int temp = 0;
if(sum1 > sum2)
{
temp = q1.poll();
q2.offer(temp);
sum1 -= (long)temp;
sum2 += (long)temp;
}else if(sum1 < sum2)
{
temp = q2.poll();
q1.offer(temp);
sum1 += (long)temp;
sum2 -= (long)temp;
}
answer++;
if(answer > (q1.size() + q2.size()) * 2)
{
answer = -1;
break;
}
}
return answer;
}
}