알고리즘/프로그래머스

[JAVA] 두 큐 합 같게 만들기

pureworld 2022. 9. 5. 06:25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.util.Queue;
import java.util.LinkedList;
class Solution {
    public int solution(int[] queue1, int[] queue2) {
        Queue<Integer> que1 = new LinkedList<>();
        Queue<Integer> que2 = new LinkedList<>();
 
        long sum1 = 0, sum2 = 0;
        for(int i = 0; i < queue1.length; i++) {
            sum1 += queue1[i];
            que1.offer(queue1[i]);
        }
 
        for(int i = 0; i < queue2.length; i++) {
            sum2 += queue2[i];
            que2.offer(queue2[i]);
        }
        int count = 0;
        while(sum1!=sum2){
            count++;
            if(sum1>sum2){
                int value = que1.poll();
                sum1 -= value;
                sum2 += value;
                que2.offer(value);
                
                
            }
            else if(sum1<sum2){
                int value = que2.poll();
                sum1 += value;
                sum2 -= value;
                que1.offer(value);
            }
            if(count > (queue1.length + queue2.length* 2return -1;
        }
        
        return count;
        
    }
    
}
cs

출처:https://school.programmers.co.kr/learn/courses/30/lessons/118667?language=java