코딩테스트 연습문제를 풀던 중에 몰랐던 함수를 알게 되어 정리해 봅니다.
내가 풀었던 방식
1. 0 부터 9 까지의 숫자를 담고있는 배열 arr1을 만든다.
2. arr1과 파라미터로 받는 numbers의 차집합을 구한다.
3. 차집합끼리 더한다.
function solution(numbers) {
const arr1 = [] // 빈 배열 arr1을 만든다.
for (let i=0; i<10; i++) { // for문을 통해서 0~9까지의 숫자를 arr1에 담는다.
arr1.push(i)
}
let different = arr1.filter(x => !numbers.includes(x)) // arr1과 numbers의 차집합을 구한다.
}
차집합까지는 구했는데 차집합끼리 더하는 방법을 몰라서 풀지를 못하고 있었다.
구글링을 하던 와중에 reduce라는 함수가 있어서 사용해 봤다.
.reduce
배열.reduce((누적값, 현잿값, 인덱스, 요소) => { return 결과 }, 초깃값);
배열에 값을 누적하는 목적으로 사용하는 함수인 것 같은데
나에게 유용하게 쓰일 듯 싶었다.
function solution(numbers) {
const arr1 = [] // 빈 배열 arr1을 만든다.
for (let i=0; i<10; i++) { // for문을 통해서 0~9까지의 숫자를 arr1에 담는다.
arr1.push(i)
}
let different = arr1.filter(x => !numbers.includes(x)) // arr1과 numbers의 차집합을 구한다.
}
diffrent값들의 합을 구하려 했으니
different.reduce((acc, cur) => acc+cur,0)
이것을 result 값으로 넣어서 return!
결과는 정상적으로 작동했다
function solution(numbers) {
const arr1 = [] // 빈 배열 arr1을 만든다.
for (let i=0; i<10; i++) { // for문을 통해서 0~9까지의 숫자를 arr1에 담는다.
arr1.push(i)
}
let different = arr1.filter(x => !numbers.includes(x)) // arr1과 numbers의 차집합을 구한다.
const result = different.reduce((acc, cur) => acc+cur,0)
return result
}
#코딩테스트 왜 이렇게 어려운거야...연습문제라며..난이도 下下라면서요....