Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 네이버커넥트재단
- git
- markdown
- AI코칭스터디
- 코딩이러닝
- reduce()
- 네이버클라우드플랫폼
- 프로그래머스
- 리액트
- MySQL
- 슥삭
- 타입스크립트
- 자바스크립트
- 무료IT교육
- GitLab
- Elastic Search
- 코딩스터디
- 코딩강의
- 마크다운
- 코딩테스트
- NCP
- 깃허브
- 대외활동
- 코드프레소
- codepresso
- 매직메서드
- API 명세서
- 엘라스틱서치
- IT교육
- 무료코딩교육
Archives
- Today
- Total
개발하는 무민
[프로그래머스-Level1] 자릿수 더하기_JavaScript + map, reduce, parseInt 본문
Algorithm/Programmers
[프로그래머스-Level1] 자릿수 더하기_JavaScript + map, reduce, parseInt
무민_ 2022. 6. 17. 08:08자릿수 더하기
문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
- N의 범위 : 100,000,000 이하의 자연수
N answer
입출력 예 설명
123 | 6 |
987 | 24 |
입출력 예 설명
입출력 예 #1
문제의 예시와 같습니다.
입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
풀이
// 입력받은 숫자를 분해해서 각각 더한 값을 반환하기
function solution(n)
{
let arr = n.toString().split("").map(x => parseInt(x));
// 입력받은 n을 toString을 통해 문자열로 만들고, split()으로 분해한 뒤
// map을 사용해서 10진수로 변경한다.
// parseInt() -> 문자열을 정수(Int)로 변환시켜주는 함수
return arr.reduce((acc, cur) => acc + cur, 0);
// 배열의 각 요소들을 누적해서 더해야 하기 때문에 reduce() 사용
// reduce() 배열의 요소들을 순회하며 반복적인 연산 수행을 하는데,
// 누산값을 계산해주는 역할을 한다.
// acc : 누산값
// cur : 현재 요소값
// acc + cur : 다음 누산값
// 0 : 초기 누산값
}
입력 받은 값을 문자열로 만들어서 한 글자씩 분해 한 뒤, map을 통해 배열로 만들고 parseInt로 정수로 변환해준다.
리턴 시에는 누적 값 계산을 위해 reduce를 사용했다.
parselnt()
문자열을 정수로 변환시켜주는 함수
얼핏보기에는 eval() 함수나 Number() 함수와 비슷해 보이지만,
parseInt() 함수는 매개변수를 이용하여 8진수, 16진수 등의 수로도 변환이 가능하며,
숫자형과 문자형이 혼합된 문자열에서 숫자형 뒤에오는 문자형은 0을 반환하여 숫자만 출력한다.
또, 소수인 경우에는 소숫점 이하를 버리고 정수만 반환함.
형식은 다음과 같다.
parseInt( 숫자형문자열 , [진수] )
(진수는 생략 가능한듯)
reduce()
배열의 요소들을 순회하면서 누적 값을 계산해주는 메서드
형식은 다음과 같다.
// reduce
const numbers = [1, 2, 3, 4];
numbers.reduce((누산값, 현재요소값, 현재요소의index, 현재배열) => {
return 다음누산값;
}, 초기누산값);
3, 4번째 파라미터는 생략이 가능하다.
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스-Level1] 시저 암호_JavaScript + 아스키 코드 (1) | 2022.06.26 |
---|---|
[프로그래머스-Level1] 자연수 뒤집어 배열로 만들기_JavaScript + reverse() (0) | 2022.06.20 |
[프로그래머스-Level1] 정수 내림차순으로 배치하기_JavaScript + split, toString, sort, join (0) | 2022.06.16 |
[프로그래머스-Level1] 이상한 문자 만들기_JavaScript + map (0) | 2022.06.15 |
[프로그래머스-Level2] 더 맵게_Java + 우선순위큐 (0) | 2022.06.13 |