[프로그래머스] javascript | Level1 없는 숫자 더하기

알고리즘
블로그 이미지

이챙(leechaeng)

﹒2022. 3. 7.

문제

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다.

numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.


[제한사항]

  • 1 ≤ numbers의 길이 ≤ 9
  • 0 ≤ numbers의 모든 원소 ≤ 9

numbers의 모든 원소는 서로 다릅니다.

 

[입출력 예]

입출력 예 #1

5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.


입출력 예 #2

1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.

 

문제해석(내 생각)

배열에서 없는 수를 구해야하기 때문에 반복문을 사용
reduce 생각을 고민해봤으나 머리가 거기까지 안돌아가서 for문 사용함 ㅋㅋㅋ,,,

 

문제풀이

function solutions(numbers){
    let num = 0
    for(let i = 0; i <= 9; i++){
        if( !numbers.includes(9 - i) ){
            num += 9 - i
        }
    }
}

solutions([1,2,3,4,6,7,8,9])
 

총 원소가 9개고 배열에 0 ~ 9 까지 들어있기 때문에 반복문으로 배열을 돌면서 값 확인
9 에서 i 값을 뺏을경우 numbers에 포함되지 않는 값이 나온다. 
포함되지 않는 값이 나올경우 변수 num에 누적 처리

- 규칙

9 - 0 = 9
9 - 1 = 8
9 - 2 = 7
9 - 3 = 6
9 - 4 = 5
9 - 5 = 4
9 - 6 = 3
9 - 7 = 2
9 - 8 = 1
9 - 9 = 0
 
 

* reduce 활용법

function solution(numbers) {
    return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}


reduce 활용하려다 머리 안돌아가서 안했는데 다른사람 풀이보니까 쉽게해놨다 역시,, 난 여기까진가보오 ..ㅋ ㅠㅠㅠ

이챙(leechaeng)
이챙(leechaeng)

프론트엔드 개발도 하고 뛰기도 하고

'알고리즘' 카테고리의 관련 글