[Programmers] lv.0 자릿수 더하기

jeongjeong2·2023년 1월 10일
0

For coding test

목록 보기
9/59

문제 설명

  • 정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요

입출력 예시

아이디어
int로 입력된 n의 자릿수를 표현할 수 있는 방법 > 10의 n제곱수를 이용해서 표현하자

내 풀이

def solution(n):
    answer = 0
    for i in range(len(str(n)),0,-1):
        a = n//(10**(i-1))
        n = n%(10**(i-1))
        answer = answer + a
    return answer

추가 개념

  • split('구분자', '구분 횟수')
  • range(a,b) : a이상 b미만으로 생각.
    range(a,b,c) : c가 a에서 b까지의 간격으로 생각
  • 입력 값의 범위가 0~1000000으로 정해져있으므로, 값 내에서 10의 n제곱수를 반복시킨 후 나눴을 때의 몫이 0일 때를 기준으로 구분할 수 있음.

다른 사람의 풀이

def solution(n):
    answer = sum(list(map(int,list(str(n)))))
    return answer

str type에서 list(something)을 하면 하나하나 list로 변경 가능, list의 각 값을 다시 int로 mapping시킨 후 list의 합 구하기.

0개의 댓글