본문 바로가기

Univ/Python Programming

[문제 10] 숫자의 자릿수 합 구하기 - Python 풀이

정수 N이 주어지면 이 숫자의 모든 자릿수의 합을 구하는 프로그램을 작성한다.

입력 예시

첫째 줄에 정수 N이 주어진다.

출력 예시

자릿수의 합을 "Sum of digits: 값" 형식으로 출력한다.

예제 테스트케이스

예제 1

입력 예시
출력 예시
123
Sum of digits: 6

예제 2

입력 예시
출력 예시
9876
Sum of digits: 30

코드

N = input()

total = 0
for digit in N:
    total += int(digit)

print(f"Sum of digits: {total}")

1. 코드 동작 설명

  • 정수 N을 문자열로 입력받는다.
  • 각 자릿수를 하나씩 순회한다.
  • 각 문자를 정수로 변환하여 누적합에 더한다.
  • 모든 자릿수의 합을 계산한 뒤 출력한다.

2. 문법 설명

input()

N = input()
  • 문자열을 입력받는 함수
  • 사용 형태:
input()

반복문 (for)

for digit in N:
  • 문자열의 각 문자를 하나씩 순회
  • 사용 형태:
for 변수 in iterable:

int()

int(digit)
  • 문자열을 정수로 변환하는 함수
  • 사용 형태:
int(문자열)

누적합 (+=)

total += int(digit)
  • 기존 값에 새로운 값을 더하여 저장
  • 사용 형태:
변수 += 값

출력 (f-string)

print(f"Sum of digits: {total}")
  • 문자열 내부에 값을 삽입하여 출력
  • 사용 형태:
print(f"문자열 {변수}")

3. 실수 포인트 (핵심만)

입력을 int로 받고 반복하는 경우

N = int(input())
for digit in N:
  • 정수는 반복 불가능 → TypeError 발생

문자 그대로 더하는 경우

total += digit
  • 문자열끼리 더해져 잘못된 결과 발생

출력 형식 오류

Sum of digit: 6
Sum: 6
  • 문자열이 정확히 일치하지 않으면 오답

4. 핵심 정리

  • 숫자를 문자열로 처리하여 각 자릿수를 분리한다.
  • 각 자릿수를 정수로 변환하여 누적합을 계산한다.