본문 바로가기

코테/프로그래머스

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

728x90

[Level 1] 자릿수 더하기

문제 링크

구분

코딩테스트연습 > 연습문제

풀이 요약

문자열 각 자릿수의 합 구하기 (단순 구현)

나의 풀이

function solution(n)
{
    return String(n).split("").reduce((acc,cur)=>acc+(cur*1),0)
}

reduce 메서드를 사용해서 배열의 각 요소의 합을 계산합니다.

acc는 누적합계를 저장하고 cur은 현재 배열 요소를 나타내는 변수입니다. 또한 cur*1을 통해 현재 배열 요소를 숫자로 변환합니다.

이는 자바스크립트의 **암묵적 변환(Implicit Coercion)**을 뜻하는데요

예상치 못한 타입을 받았을 때 예상 가능한 타입으로 바꿔준다고 생각하면 됩니다. 그로 인해 숫자 값을 넘겨야 하는 곳에 문자열을 넣을 수 도 있고, 문자열을 넣어야 하는 곳에 숫자를 넣을 수도 있습니다.

문제와 같이 -, *, /, %를 포함한 문자열 (문제에서는 cur * 1)을 피연사자로 넘길 때마다 숫자의 암묵적 타입변환이 일어나게 됩니다. 따라서 Number 함수를 불러오는 것과 비슷합니다.

배운 점

숫자 표현식에서 문자열을 피 연사자로 넘기면 암묵적 형변환이 일어나는 것을 배웠습니다.

728x90