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

 

프로그래머스

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

programmers.co.kr

 

 

#include <string>
#include <vector>
#include <queue>
using namespace std;

int solution(vector<int> queue1, vector<int> queue2) {
    queue<int> q1, q2;
    long long total1 = 0, total2 = 0; 

    for(int i = 0; i < queue1.size(); i++) {
        q1.push(queue1[i]);
        q2.push(queue2[i]);
        total1 += queue1[i];
        total2 += queue2[i];
    }

    if((total1 + total2) % 2 == 1) return -1;

    int count = 0;
    int limit = queue1.size() * 3;

    while(count < limit) {
        if(total1 == total2) return count;

        if(total1 > total2) {
            int val = q1.front();
            q1.pop();
            q2.push(val);
            total1 -= val;
            total2 += val;
        } else {
            int val = q2.front();
            q2.pop();
            q1.push(val);
            total2 -= val;
            total1 += val;
        }
        count++;
    }

    return -1; 
}
kwon-record