슈콩

[프로그래머스] Lv.2 두 큐 합 같게 만들기 본문

Algorithms/Programmers

[프로그래머스] Lv.2 두 큐 합 같게 만들기

shukong 2025. 10. 17. 14:53

 

 

[문제]

https://school.programmers.co.kr/learn/courses/30/lessons/118667#qna

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

[소스 코드]

import java.util.*;
class Solution {
    public int solution(int[] queue1, int[] queue2) {
        int len = queue1.length + queue2.length+1;
        Queue<Integer> q1 = new LinkedList<>();
        Queue<Integer> q2 = new LinkedList<>();
        long sum1 = 0;
        long sum2 = 0;
        for(int i : queue1) {
            sum1 += i;
            q1.offer(i);
        }
        for(int i : queue2) {
            sum2 += i;
            q2.offer(i);
        }
        if(sum1 == sum2) return 0;
        int num1 = 0;
        int num2 = 0;
        int cnt = 0;
        while(cnt<=len && !q1.isEmpty() && !q2.isEmpty()){
            num1 = q1.peek();
            num2 = q2.peek();
            if(sum1<sum2){
                q1.add(q2.poll());
                sum1 += num2;
                sum2 -= num2;
                cnt++;
            }
            else if(sum1>sum2){
                q2.add(q1.poll());
                sum2 += num1;
                sum1 -= num1;
                cnt++;
            }
            if(sum1==sum2) return cnt;
        }
        return -1;
    }
}