<나의 풀이>
function solution(numbers) {
let box = [0,1,2,3,4,5,6,7,8,9];
let answer = 45;
box.map((item) => {
if(numbers.includes(item)){
answer -= item;
}
})
return answer;
}
<가장 많은 좋아요를 받은 풀이>
function solution(numbers) {
return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}
reduce를 쓰면 뭔가 더 간단해질 거 같았었는데,
역시나 이렇게 간단해질 수 있었구나 싶었다.
주어진 배열의 값들을 끄집어내면서 다 더한 값을,
0~9까지의 숫자를 더한 값(=45)에서 빼면,
0~9까지의 숫자 중 없는 걸 다 더한 것과 같은 값이 나옴.
#reduce 사용법 복습
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const sum1 = numbers.reduce((acc, cur) => acc + cur);
//초기값이 주어지지 않았으므로, acc는 1의 값, cur은 2의 값으로 시작.
//acc 3, cur 4의 값으로 다음 동작
//... 반복하여 acc 45, cur 10으로 마지막 acc + cur 값인 55가 리턴됨.
console.log('sum1 =', sum1);
'주5일알고리즘' 카테고리의 다른 글
Programmers : 음양 더하기 with JS (0) | 2022.07.20 |
---|---|
Programmers: 크레인 인형뽑기 게임 with JS (2) | 2022.07.05 |
Programmers: 키패드 누르기 with JS (2) | 2022.07.04 |
Programmers: 숫자 문자열과 영단어 with JS (1) | 2022.07.01 |
Programmers: 신규 아이디 추천 with JS (3) | 2022.06.30 |