관리 메뉴

나의 개발일지(김지헌)

1번. 없는 정수 사이의 합 (하) 본문

알고리즘 공부

1번. 없는 정수 사이의 합 (하)

코딩이좋아요 2022. 9. 29. 22:09
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. 
numbers에서 찾을 수 없는 숫자는 두개입니다. 두 정수를 a,b라고 했을 때, a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

function solution(arr1){
let answer=0;
    let str = "";
    for(i = 0; i <= 9; i++){ //0에서 0까지의 숫자이기 때문에 <=
        if(arr1.includes(i) == false){ // includes를 사용하여 비어있는 값을 찾는다. 비어있으면 통과하도록

            str += i //==false사용하여 true로 만들어줬다. 
        } 
//비어있는 값을 str에 문자로 넣어줬다. 문자말고 숫자로 받으면 0이 없어질수도있다
    }
    let str2 = str.split("").map(Number)

//받아온 문자를 하나씩 배열로 만들고 숫자로 전환 시켰다. Math메소드를 사용하기위해서
    let max = Math.max(...str2)  //배열중 최대값 구한다
    let min = Math.min(...str2)  //배열중 최소값 구한다
for (j = min; j <= max; j++){  //최소값부터 최대값 까지 반복문을 돌려준다. 0,1,2,3,4,5,6,7,8,9까지 반복한다.
    answer += j  // j값을 누적해서 넣어준다 
}
    return answer
}

let arr1=[7,8,3,5,6,1,2,4]; // 45

console.log(solution(arr1))

ex)

[1,2,4,6,7,8,9,0]  12

[1,3,5,9,2,4,8,0]  13

 

처음 이 문제를 풀었을때 반복문 돌려서 바로 answer에 넣어줬는데 [1,3,5,9,2,4,8,0]  13 이거는 맞았는데

[7,8,3,5,6,1,2,4]  45 여기에서 틀리는 것이였다. 고민하다보니 0도 포함이었던걸 알아내고 0도 포함할수있게 문자열로 받았다.

'알고리즘 공부' 카테고리의 다른 글

3진법 뒤집기  (0) 2022.10.06
2번. 이상한 문자 만들기2 (중)  (0) 2022.09.29
가운데 글자 뽑아보기  (0) 2022.09.24