Coding Test

가짜 난쟁이 고르기

jjikky 2023. 2. 27. 15:30
반응형
문제 : 일과를 마치고 온 백설공주의 난쟁이가 일곱명이 아닌 아홉명으로 돌아왔다.
기존 일곱 난쟁이의 키의 합이 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]));
반응형