본문 바로가기
Coding Test/Programmers

[Programmers] (2022 KAKAO TECH INTERNSHIP) Lv 2. 두 큐 합 같게 만들기

by song.ift 2023. 8. 1.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

#include <string>
#include <vector>
#include <algorithm>
#include <numeric>
#include <cmath>

using namespace std;

int solution(vector<int> queue1, vector<int> queue2) {
    int answer = 0;
    long sum1 = ::accumulate(queue1.begin(), queue1.end(), 0),
           sum2 = ::accumulate(queue2.begin(), queue2.end(), 0);
    size_t idx1 = 0, idx2 = 0;
    int max = queue1.size() * 4;

    while (answer < max)
    {
        if (sum1 > sum2 && !queue1.empty())
        {
            queue2.emplace_back(queue1[idx1]);
            sum2 += queue1[idx1], sum1 -= queue1[idx1];
            ++idx1;
        }
        else if (sum1 < sum2 && !queue2.empty())
        {
            queue1.emplace_back(queue2[idx2]);
            sum1 += queue2[idx2], sum2 -= queue2[idx2];
            ++idx2;
        }
        else break;
        
        ++answer;
    }

    return answer >= max ? -1 : answer;
}

GitHub : https://github.com/developeSHG/Algorithm-Baekjoon_Programmers/commit/f8142d5ee794ca3ac635aa1bacab6825bfae7d93

 

[level 2] Title: 두 큐 합 같게 만들기, Time: 1.59 ms, Memory: 10.7 MB -Baekjo… · developeSHG/Algorithm-Baekjoon_Progr

…onHub

github.com

 

댓글