Algorithm - 없는 숫자 더하기

Cho2andy·2022년 5월 13일
0

알고리즘

목록 보기
6/28
post-thumbnail

없는 숫자 더하기

<프로그래머스 문제를 기반으로 합니다>

  • 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다.
  • numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.

그니까 0 ~ 9로만 이루어진 numbers 배열이 있는데 이중 없는 숫자를 찾아서 더해라라는 거구만

제한사항

  • 1 ≤ numbers의 길이 ≤ 9
  • 0 ≤ numbers의 모든 원소 ≤ 9
  • numbers의 모든 원소는 서로 다릅니다.

제한 사항이 아주 고마웠던 문제다
numbers 길이가 1 ~ 9로 제한되고, 모든 element 들이 다 다르다니 풀기 한결 수월하다 (●'◡'●)

입출력 예

numbers				result
[1,2,3,4,6,7,8,0]	14
[5,8,4,0,6,7,9]		6

분석한 대로 입출력이 나오는 걸 알 수 있다 :)

자 그럼 어떻게 풀어야 잘 풀었다고 할까

  1. numbers 배열의 각 원소들을 먼저 찾아야 할 것 이고
  2. 찾는 중에 ( 0 ~ 9 ) 범위에 포함된 원소들이 있을거고
  3. 그럼 numbers 배열에 포함되지 않은 원소들을 솎아내서
  4. answer 값에 더해주면?
  5. 답이 뙇😍

아 그러면 includes() 함수를 사용하면 편하겠구나!! ( ̄︶ ̄)↗ 

오케이 가보자

<풀이 완성 코드>

function solution(numbers) {
    var answer = 0;
    for(let i = 0; i < 10; i++){
        if(!numbers.includes(i)){
            answer += i   
        }   
    }
    return answer;

가상의 ( 0 ~ 9 )를 각각 모두 포함한 배열이 있다고 가정하기위해

(i < 10)

을 조건에 걸었다

그렇게 쭉 반복문을 돌렸을 때, numbers 배열에 포함이 안된

(!numbers.includes(i))

element 들을 answer에 더하는 간단한 풀이였다 (❁´◡`❁)

근데 이게 위와 같은 가상의 배열을 그냥 전체 총 합이 45인 배열이라고 가정을 하면 또 다른 풀이가 나올 것 같았다.

<추가 풀이 완성 코드>

function solution(numbers) {
	for(let i = 0; i<numbers.length; i++){
        answer += numbers[i]
    }
    return 45 - answer
}

0 ~ 9 의 총합이 45니까

45에서 numbers 배열의 모든 원소들의 합을 빼주면?

numbers 배열에 없는 원소들의 합이 나온다 ( ̄︶ ̄)↗ 

profile
먹고 배우는 것엔 아끼지 말자구 ( ̄︶ ̄)↗

0개의 댓글