> 기초/코테 연습
TIL-2024.08.11-programmers-lv2-118667.두 큐 합 같게 만들기(feat.kakao)
Janku
2024. 8. 11. 12:32
URL:
https://school.programmers.co.kr/learn/courses/30/lessons/118667
CODE:
// URL >
const solution = (queue1, queue2) => {
let sum1 = queue1.reduce((acc, cur) => acc += cur);
let sum2 = queue2.reduce((acc, cur) => acc += cur);
let target = ( sum1 + sum2 ) / 2;
const maxCount = (queue1.length) * 2 + 1;
let count = 0;
const flag = queue1.concat(queue2).filter(item => item > target);
if (flag.length !== 0) return -1;
let queue1Index = 0;
let queue2Index = 0;
while (!( sum1 === sum2 )) {
if (sum1 > sum2) {
let element1 = queue1[queue1Index];
queue1Index += 1;
queue2.push(element1);
sum2 = sum2 + element1;
sum1 = sum1 - element1;
} else if (sum1 < sum2) {
let element2 = queue2[queue2Index];
queue2Index += 1;
queue1.push(element2);
sum2 = sum2 - element2;
sum1 = sum1 + element2;
}
count += 1;
if (count > maxCount) return -1;
}
return count;
};
console.log("result:: ", solution([3, 2, 7, 2], [4, 6, 5, 1])); // 2
console.log("result:: ", solution([1, 2, 1, 2], [1, 10, 1, 2])); // 7
console.log("result:: ", solution([1, 1], [1, 5])); // -1
console.log("result:: ", solution([10, 5, 1], [2, 2, 2])); // -1
console.log("result:: ", solution([1, 1, 1, 1], [1, 1, 7, 1])); // -1