| 문제 출처 | 제목 | 난이도 |
|---|---|---|
| 2022 KAKAO TECH INTERNSHIP | 두 큐 합 같게 만들기 | Lv.2 |
import java.util.*;
class Solution {
public int solution(int[] queue1, int[] queue2) {
int answer = 0;
Queue<Integer> q1 = new LinkedList<>();
Queue<Integer> q2 = new LinkedList<>();
long sum1 = 0;
long sum2 = 0;
for(int i=0; i<queue1.length; i++){
q1.add(queue1[i]);
sum1 += queue1[i];
q2.add(queue2[i]);
sum2 += queue2[i];
}
while(sum1 != sum2){
if(answer > (queue1.length + queue2.length)*2){
return -1;
}
if(sum1 > sum2){
int tmp = q1.poll();
q2.add(tmp);
sum1 -= tmp;
sum2 += tmp;
}else if(sum1 < sum2){
int tmp = q2.poll();
q1.add(tmp);
sum1 += tmp;
sum2 -= tmp;
}else{
break;
}
answer++;
}
return answer;
}
}
참고링크: 2022 테크 여름 인턴십 코테 문제 해설