[프로그래머스] 자릿수 더하기 in JavaScript

hyocho·2022년 6월 17일
0

코딩테스트

목록 보기
14/45

✅문제

문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

  • 제한사항
    N의 범위 : 100,000,000 이하의 자연수

✍문제풀이

  1. 입력받는 자연수를 split으로 한 자리씩 나누어준다.
  2. 반복문으로 마지막 숫자까지 더한 합을 리턴해주는 식을 세우기.
function solution(n) {
    let tmp = n+''.split;
    for(let i = 0; i<tmp.length; i++){
        var answer = answer + tmp[i];
    }
    return answer;
}

처음에 생각했던 방법은 위와 같았고 역시나 실행이 되지 않았다..🙃
n+''.split으로 정수>문자열 형변환을 해주었고, 이후 answer에 값을 넣어줄 때 문자열로 넣어줬기 때문에 오류가 나는 것 같았다.
계속 끄적이다가 알게된 사실은 split으로 나누지 않아도 된다는 점.

function solution(n) {
    let answer = 0;
    let tmp = n+"";

    for(let i = 0; i<tmp.length; i++){
        answer+=parseInt(n[i]);
    }
    return answer;
}

위의 코드는 정상 작동이 되었다.

▼ 2022년 7월 6일 수정 내용

/*
자연수 n 이 주어지면 각 자릿수의 합을 구해서 리턴하기. 

1) 자연수를 문자열로 변환한다.123 > "123"
2) 문자열을 하나씩 뗀다. "1" "2" "3"
3) 돌아가면서 한 자리씩 더한다.
*/

function solution(n) {
  var answer = 0;
  let str = n + '';
  for (let i = 0; i < str.length; i++) {
    answer += Number(str[i]);
  }
  return answer;
}

처음에 다른 사람들의 코드를 참고해서 풀었던 parseInt의 사용법은 아직도 익숙하지 않아 이번에는 Number으로 문자열>숫자로 바꾸어 준 점이 차이점.

📝TIL

  • split은 문자열을 나누는 메서드. 정수에는 쓸 수 없다.

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12931

profile
기록하는 습관을 기르고 있습니다.

0개의 댓글