데이터분석 기록일지

문제풀이/프로그래머스

[프로그래머스 Lv.1] 자릿수 더하기 (Python)

야하루 2024. 7. 8. 19:36

코딩테스트 연습 - 자릿수 더하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr

 

 

문제

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

 

제한사항

N의 범위 : 100,000,000 이하의 자연수

 

입출력 예
n answer
123 6
987 24

 

 


 

풀이

 

아이디어: 숫자는 인덱싱이 안되기 때문에, 이를 문자열로 바꿔주어 한 자리씩 가져온 뒤 숫자로 바꾸고 더해주기
# 풀이1
def solution(n):
    answer = 0
    for i in str(n):
        answer += int(i)
    return(answer)

-> for 문을 사용해서 str로 바꾼 n을 한자리씩 가져오고, 다시 int로 바꾼 다음에 합 구하기

 

 

 

# 풀이2
def solution(n):
    str_n=[x for x in str(n)]
    answer = sum(list(map(int,str_n)))
    return(int(answer))

리스트 컴프리헨션과 map 함수 사용. 

-> 리스트 컴프리헨션으로 str로 바꾼 n을 리스트로 모아주고, map 함수를 이용해서 이들 str_n 전체에 int()함수를 다시 씌워줬다. 이후 sum()으로 합해주면 끝