Files
Coding-Practice/programmers/두 큐 합 같게 만들기/solution.java
T
2023-01-03 19:06:49 +09:00

36 lines
1.2 KiB
Java

// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/118667
import java.util.*;
import java.util.stream.*;
class Solution {
public long solution(int[] queue1, int[] queue2) {
long answer = 0;
Queue<Integer> q = new LinkedList<>(Arrays.stream(queue1).boxed().collect(Collectors.toList())),
q2 = new LinkedList<>(Arrays.stream(queue2).boxed().collect(Collectors.toList()));
long temp = 0, temp2 = 0;
int sur = 0, tot = q.size()+q2.size();
for(int a : queue1) temp += a;
for(int a : queue2) temp2 += a;
// temp = q.stream().mapToInt(i->i).sum();
// temp2 = q2.stream().mapToInt(i->i).sum();
while(temp!=temp2){
if(temp>temp2){
sur = q.poll();
q2.add(sur);
temp -= sur;
temp2 += sur;
} else {
sur = q2.poll();
q.add(sur);
temp += sur;
temp2 -= sur;
}
answer++;
if(temp==0||temp2==0||answer > tot*2) {
answer = -1;
break;
}
}
return answer;
}
}