본문 바로가기
Problem Solving/프로그래머스

[프로그래머스 | 파이썬 / 자바스크립트] 자릿수 더하기(코딩테스트 입문/ level 0)

by 청량리 물냉면 2023. 2. 21.
반응형
문제

https://school.programmers.co.kr/learn/courses/30/lessons/120906?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

🐍파이썬
def solution(n):
    return sum(list(map(int, str(n))))

map() 함수를 이용해 숫자의 각 자리를 list의 원소로 넣고, sum() 함수를 이용해 리스트 원소의 합계를 구한다. 

 

 

다른 풀이 방법

def solution(n):
    return sum(int(i) for i in str(n))

def solution(n):
    answer = 0
    while n:
        answer += n%10
        n //= 10
    return answer

n의 값을 10으로 나누며 나머지를 answer에 더하고, 몫은 다시 n에 대입하기를 반복하며 각 자리 수의 합을 구한다.

n n%10
930211  
93021 1
9302 1
930 2
93 0
9 3
  9

def solution(n):
    answer = 0
    while n:
        n, r = divmod(n, 10)
        answer += r
    return answer

위 풀이법을 divmod()를 이용해 진행

 

 

🐥자바스크립트
function solution(n) {
    n = n.toString()
    return n.split("").map((v) => Number(v)).reduce((acc, cur) => acc + cur);
}

 

 

다른 풀이 방법

function solution(n) {
  return n
    .toString()
    .split("")
    .reduce((acc, cur) => acc + Number(cur), 0);
}

reduce내에서 Number로 형변환해 누적값을 계산할 수 있다.


function solution(n) {
    let result = 0;
    while (n > 0) {
        result += n % 10;
        n = Math.floor(n/10);
    }
    return result;
}

 

 

 

 

 

 

반응형