나의 개발일지(김지헌)
1번. 없는 정수 사이의 합 (하) 본문
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 |