728x90
나의 코드
function solution(n) {
return String(n).split('').reduce((sum, digit) => sum + parseInt(digit,10),0);
}
설명
1. String(n)
: 주어진 정수 n을 문자열로 변환한다. => 이렇게 함으로써 정수의 각 자리 숫자를 하나씩 분리하고 처리할 수 있음!!
2. .split('')
: 변환된 문자열을 빈 문자열 ''을 기준으로 나눈다. => 이 결과로 배열이 생성되며, 각 배열 요소는 문자열의 각 자리 숫자를 담게 된다.
3. .reduce((sum, digit) => sum + parseInt(digit, 10), 0)
: 배열을 reduce() 함수를 사용하여 합산하는 작업을 가진다 => reduce() 함수는 배열의 각 요소에 대해 주어진 함수를 순차적으로 적용하면서 하나의 결과값을 생성한다.
이때,
- sum은 누적 합을 의미한다. 초기값으로 0을 설정
- digit은 배열의 각 요소인 문자열로 표현된 숫자이다.
- parseInt(digit, 10)은 문자열을 10진수 숫자로 변환하는 과정이다.
- sum + parseInt(digit, 10)을 통해 누적 합에 각 자리 숫자를 더한다.
reduce() 에 대해서 좀 더 자세하게 알아보려 한다.
좀 헤맸어서 🥲..!
Array.prototype.reduce()
배열의 각 요소에 대해 주어진 함수를 순차적으로 적용하면서 하나의 결과값을 생성하는 메서드로, 이 메서드는 배열을 하나의 값으로 줄이는(reduce) 작업을 수행한다.
reduce() 메서드는 다음과 같은 형식을 가진다.
arr.reduce(callback(accumulator, currentValue, currentIndex, array), initialValue)
callback: 각 요소에 대해 실행할 함수로서 4개의 매개변수를 받는다.
1. accumulator: 누적값으로서, 함수가 실행될 때마다 누적되는 값
2. currentValue: 현재 처리 중인 배열 요소의 값
3. currentIndex: 현재 처리 중인 배열 요소의 인덱스
4. array: reduce() 메서드를 호출한 배열 자체
initialValue (선택사항): 함수의 첫 번째 호출 시 초기값으로 사용되는데, 만약 이 매개변수가 제공되지 않으면 배열의 첫 번째 요소가 초기값으로 사용된다.
참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
728x90
'헬리'Daily > 꾸준한 알고리즘' 카테고리의 다른 글
[프로그래머스] 코테 (분수의 덧셈) (0) | 2023.08.18 |
---|---|
[프로그래머스] 코테 (모음 제거) (0) | 2023.08.07 |
[프로그래머스] 코테 (배열자르기) (0) | 2023.08.07 |
[프로그래머스] 코테 (최댓값 만들기(1)) (0) | 2023.08.07 |
[프로그래머스] 코테 (문자열안에 문자열) (0) | 2023.08.04 |