https://school.programmers.co.kr/learn/courses/30/lessons/118667?language=cpp
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> queue1, vector<int> queue2) {
int answer = 0;
vector<int> v;
int s1 = 0;
int e1 = queue1.size() - 1;
int s2 = queue1.size();
int e2 = queue1.size()*2 - 1;
int size = queue1.size() * 2;
long long sum1 = 0, sum2 = 0;
for (int q1: queue1) {
sum1 += q1;
v.push_back(q1);
}
for (int q2: queue2) {
sum2 += q2;
v.push_back(q2);
}
// 위치가 원래대로 돌아오면 각 큐의 원소 합을 같게 만들 수 없음
while (answer <= size * 2) {
if (sum1 < sum2) {
sum1 += v[(++e1) % size];
sum2 -= v[(s2++) % size];
} else if (sum1 > sum2) {
sum1 -= v[(s1++) % size];
sum2 += v[(++e2) % size];
} else return answer; // 두 큐의 합이 같으면 answer 반환
answer++;
}
return -1;
}
'CodingTest > 99클럽2024스터디' 카테고리의 다른 글
99클럽 코테 스터디 11일차 TIL, 프로그래머스 / 가장 큰 수 (0) | 2024.08.01 |
---|---|
99클럽 코테 스터디 8일차 TIL, 프로그래머스 / 최소 힙 (0) | 2024.07.30 |
99클럽 코테 스터디 6일차 TIL, 프로그래머스 / 테이블 해시함수 (0) | 2024.07.28 |
99클럽 코테 스터디 5일차 TIL, 프로그래머스 / 베스트 앨범 (0) | 2024.07.27 |
99클럽 코테 스터디 4일차 TIL, 프로그래머스 / 문자열 압축 (0) | 2024.07.25 |