[연습문제] 자릿수 더하기
2024. 11. 13. 18:00ㆍ입문문제
https://school.programmers.co.kr/learn/courses/30/lessons/12931
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
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
- 문제의 예시와 같습니다.
입출력 예 #2
- 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
자연수 N이 주어졌을 때, 각각의 자릿수를 더하는 문제입니다.
보통 이런 문제들은 반복문을 사용해 10으로 나눈 몫과 나머지를 활용하라는 의도입니다.
저도 C는 의도대로 풀고, 파이썬은 숫자 -> 문자열 -> 숫자로 교체하여 더하는 방법으로 문제를 풀어볼 예정입니다.
정답 코드를 작성해보겠습니다.
1. C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int n) {
int answer = 0;
// n이 0보다 클 때까지 반복합니다.
while (n > 0) {
// 10으로 나눈 나머지를 더합니다.
answer += (n % 10);
// n을 10으로 나눈 몫으로 재설정합니다.
n /= 10;
}
return answer;
}
심플하게 while 문을 사용해 자연수 범위일 때 더하는 방법을 사용했습니다.
2. 파이썬
def solution(n):
# n을 문자열로 변환합니다.
# 변환된 문자열에서 하나씩 숫자로 변환합니다.
# 변환된 숫자들을 더합니다.
answer = sum(int(c) for c in str(n))
return answer
숫자를 문자열로 변환한 뒤, 해당 문자열을 하나씩 숫자로 변환하여 암묵적인 리스트로 구현합니다.
해당 리스트에 sum 함수를 적용하는 것으로 자릿수를 더할 수 있습니다.
'입문문제' 카테고리의 다른 글
| [연습문제] 정수 내림차순으로 배치하기 (1) | 2024.11.16 |
|---|---|
| [연습문제] 자연수 뒤집어 배열로 만들기 (0) | 2024.11.14 |
| [연습문제] 이상한 문자 만들기 (0) | 2024.11.12 |
| [연습문제] 약수의 합 (0) | 2024.11.11 |
| [연습문제] 시저 암호 (0) | 2024.11.08 |