반응형
문제 : 일과를 마치고 온 백설공주의 난쟁이가 일곱명이 아닌 아홉명으로 돌아왔다.
기존 일곱 난쟁이의 키의 합이 100인 것을 기억해 내어 진짜 난쟁이 일곱명을 찾으려 한다.
입력 : 배열안에 난쟁이의 키가 주어진다. 키는 100을 넘지 않는다.
출력 : 입력된 순서대로 일곱 난쟁이의 키를 배열에 담아 출력한다.
입력 예제 1 : [20, 7, 23, 19,10, 15, 25, 8, 13]
출력 예제 1 : [20, 7, 23, 19,10, 8, 13]
해결 방법
전체 난쟁이들 키의 합에서 가짜 난쟁이 두명의 키를 빼면 100이 되야 하는 점을 이용한다.
function solution(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length; j++) {
if (i != j) {
if (arr.reduce((acc, cur) => acc + cur) - (arr[i] + arr[j]) == 100) {
arr.filter((cur, index) => {
if (index != i && index != j) result.push(cur);
});
return result;
}
}
}
}
}
console.log(solution([20, 7, 23, 19, 10, 15, 25, 8, 13]));
반응형
'Coding Test' 카테고리의 다른 글
코딩테스트를 위한 알고리즘과 시간복잡도 (0) | 2024.01.02 |
---|---|
[python] 가게 입점 시키기 (3) | 2023.11.26 |
프로그래머스 [로또의 최고 순위와 최저 순위] (0) | 2021.09.17 |