-
항해 99 - 없는 숫자 더하기알고리즘 공부/JavaScript 문제 2023. 4. 15. 16:56
[ 문제 ]
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다.
numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
- 1 ≤ numbers의 길이 ≤ 9
- 0 ≤ numbers의 모든 원소 ≤ 9
- numbers의 모든 원소는 서로 다릅니다.
[ Input / Output 예시 ]
Input Output [1,2,3,4,6,7,8,0] 14 [5,8,4,0,6,7,9] 6
[ 풀이 ]
풀이 (1)
(내 풀이)
0부터 9까지 for문을 돌려서 numbers 배열에 원소가 있는지 확인하고 없으면 더해주기
풀이 (2)
(프로그래머스 풀이)
reduce 함수 활용! 많이 사용하는 것 같다! 공부 필수~
0부터 9까지의 합은 45이므로 45에서 numbers 배열의 원소의 합을 빼자.
이때, numbers 배열의 합을 구하기 위해서 reduce 함수를 사용한다.
풀이 (3)
((2) 응용해보기)
reduce 함수는 초기값을 설정하여 누적변수에 원하는 계산을 반복하여 누적한다.
이를 응용하여 초기값을 45로 설정하고 numbers 배열에 있는 원소들을 하나씩 빼준다.
[ 코드 ]
// 풀이 (1) function solution(numbers) { // return할 변수 let sum = 0; // 0부터 9까지 차례대로 numbers에 있는지 없는지 확인하여 없으면 sum에 더해준다. for (let i=0 ; i<10 ; i++) { if (numbers.indexOf(i) === -1) { sum += i } } return sum; } console.log(solution([5,8,4,0,6,7,9])) // 풀이 (2) // 전체 합이 45에서 reduce함수를 사용하여 배열의 합을 구해서 빼는 방법 function solution(numbers) { return 45 - numbers.reduce((sum, cur) => {return sum+cur}, 0); } console.log(solution([5,8,4,0,6,7,9])) // 풀이 (3) // 전체 합이 45에서 reduce함수를 사용하여 배열의 합을 구해서 빼는 방법 function solution(numbers) { return numbers.reduce((sum, cur) => {return sum-cur}, 45); } console.log(solution([1,2,3,4,6,7,8,0]))
'알고리즘 공부 > JavaScript 문제' 카테고리의 다른 글
항해 99 - 음양 더하기 (0) 2023.04.15 항해 99 - 문자열을 정수로 바꾸기 (0) 2023.04.15 항해 99 - 두 정수 사이의 합 (0) 2023.04.15 항해 99 - 가운데 글자 가져오기 (0) 2023.04.14 항해 99 - 짝수와 홀수 (0) 2023.04.14