코딩테스트 문제 풀기 Lv 1 자릿수 합 구하기

휘루·2024년 6월 17일
0

코딩테스트

목록 보기
9/13

문제 설명

자연수 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 하면 됩니다.

처음에는 n[0] + n[1] + n[2]면 되는 줄 알았다.

function solution (n) {
	let answer = 0;
    
    answer = n[0] + n[1] + n[2];
    
    return answer;
}

처음엔 이렇게 했는데 아니었다. 형변환을 해야 한다.
문자열을 넣고, parseInt로 정수를 변환해서 합산시켜야 한다.
그리고 합산하려면 for문으로 돌려야 한다.

 function solution(n) {
	let answer = 0;
    let str = n.toString();
    
    for (let i = 0; i < str.length; i++) {
    	answer = answer + parseInt(str[i]);
    }
    return answer;
}
  • n.toString()으로 문자열로 바꾸고
  • answer + parseInt(str[i])로 정수로 바꿔서 str의 i들을 answer에 합산

다른 방법도 있다던데 찾아보니까 .split('')과 .map(Number)를 써야 한다.

function solution(n) {
	let answer = 0;
	let str = n.toString().split('').map(Number);
    
    for (let i = 0; i < str.length; i++) {
    	answer = answer + str[i];
    }
    return answer;
}
  • toString()은 n에 들어간 123을 문자열로 변경
  • split()으로 문자열로 바꾸고 배열로 만듭니다
  • map(Number)은 각각의 '1', '2', '3'을 숫자로 바꾸는 명령어
profile
반가워요

0개의 댓글