[문제 설명]
- 1 ≤ numbers의 길이 ≤ 9
- 0 ≤ numbers의 모든 원소 ≤ 9
- numbers의 모든 원소는 서로 다릅니다.
[1,2,3,4,6,7,8,0] | 14 |
[5,8,4,0,6,7,9] | 6 |
- 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.
입출력 예 #2
- 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.
[문제 풀이]
function solution(numbers) {
var answer = 0;
const lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
let newlst = lst.filter(x => !numbers.includes(x))
for (let i=0; i<newlst.length; i++) {
answer += newlst[i]
}
return answer;
}
[해설]
우선 0~9 를 담은 리스트 lst를 생성합니다.
filter와 includes 함수를 활용하여 두 리스트 간(numbers, lst) 차집합을 구하고, for문으로 newlst의 모든 원소를 더해줍니다.
*filter, includes 함수 내용은 아래 게시글에서 확인해주세요.
2023.01.18 - [취준/[개발공부] javascript] - 프로그래머스 자주 사용되는 함수 모음
프로그래머스 자주 사용되는 함수 모음
* set 집합. 중복을 허용하지 않습니다. let ot = [...new Set([...one, ...two])]; 여기서는 Spread Operator(전개연산자) '...'로 Set 객체의 값들을 하나씩 전개, 즉 꺼내서 새로운 배열의 원소로 넣고, ot에 저장하
yoo-hk.tistory.com
[다른 사람 풀이]
function solution(numbers) {
return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}
0~9의 합이 45인 것을 이용하였습니다. reduce 함수로 numbers의 합을 구하여 0~9 합에서 빼주었습니다.
* reduce 함수 내용은 아래 게시글에서 확인해주세요.
2023.01.12 - [취준/[문제풀이] programmers] - [js] 평균 소득액 구하기_Disaster Assistance Amount
[느낀점]
단순히 많은 함수를 알고, 1차원적으로 생각해서는 간결한 코드를 작성하기 어려운 것 같다. 함수의 기초를 단단히 다지되, 문제를 여러 방향으로 바라보고 다양한 방법으로 해결할 수 있도록 여러 차례 도전해보는 것이 좋을 것 같다.
[github] - AddMissingNumbers.js
https://github.com/yh725k/javascript.git
GitHub - yh725k/javascript
Contribute to yh725k/javascript development by creating an account on GitHub.
github.com