본문 바로가기

알고리즘, 자료구조

[백준| 단계별로 풀어보기 5단계 문자열 | Python] 11720번 숫자의 합

1. 문제 목적

이 문제의 목적은 문자열 내의 각 문자(숫자)를 정수로 변환하고, 이들을 합하여 결과를 출력하는 과정에서 문자열 처리와 반복문 사용법을 익히는 데 있습니다.

2. 핵심 개념

  • 문자열: 문자의 연속으로, 파이썬에서는 문자열을 큰따옴표(" ") 또는 작은따옴표(' ')로 묶어 표현합니다.
  • 정수 변환: 문자열 내의 숫자 문자를 실제 정수 값으로 변환하기 위해 int() 함수를 사용합니다.
  • for 문: 하나씩 문자를 순회하며 각 문자를 정수로 변환하고 누적합을 구하기 위해 사용됩니다.

3. 문제 해결 절차

  1. 사용자로부터 숫자의 개수를 입력받습니다(이 과정은 주어진 문제에서 중요하지 않으므로 생략할 수 있습니다).
  2. 숫자로 이루어진 문자열을 입력받습니다.
  3. 문자열의 각 문자를 순회하며 각각을 정수로 변환합니다.
  4. 변환된 정수들의 합을 계산합니다.
  5. 계산된 합을 출력합니다.

4. 코드 작성

input()  # 첫 번째 입력(숫자의 개수)은 사용하지 않으므로 생략
numbers = input()  # 숫자로 이루어진 문자열 입력
print(sum(int(num) for num in numbers))  # 각 숫자를 정수로 변환하여 합계를 계산하고 출력
  • input(): 사용자로부터 입력을 받지만, 이 값을 사용하지 않으므로 변수에 저장하지 않습니다.
  • numbers = input(): 사용자로부터 숫자로 이루어진 문자열을 입력받습니다.
  • sum(int(num) for num in numbers): 리스트 컴프리헨션을 사용해 문자열의 각 문자를 정수로 변환하고, sum() 함수를 사용해 이들의 합을 계산합니다. 이 과정은 한 줄로 간결하게 수행됩니다.
n = int(input("숫자의 개수를 입력하세요: "))  # 숫자의 개수 입력
numbers = input("숫자를 연속해서 입력하세요: ")  # 숫자로 이루어진 문자열 입력
total = 0  # 합계를 저장할 변수 초기화
for num in numbers:  # 문자열의 각 문자에 대해
    total += int(num)  # 문자를 정수로 변환하고 total에 더함
print("숫자들의 합:", total)  # 계산된 합 출력
  • n = int(input("숫자의 개수를 입력하세요: ")): 사용자에게 숫자의 개수를 입력받습니다. 이 값은 이 문제에서 실질적으로 사용되지 않지만, 문제의 요구사항을 충족시키기 위해 포함됩니다.
  • numbers = input("숫자를 연속해서 입력하세요: "): 사용자로부터 숫자로 이루어진 문자열을 입력받습니다.
  • total = 0: 합계를 저장할 변수를 0으로 초기화합니다.
  • for num in numbers: 입력받은 문자열의 각 문자에 대해 반복합니다.
  • total += int(num): 각 문자를 정수로 변환하고 total에 더하여 합계를 계산합니다.
  • print("숫자들의 합:", total): 최종적으로 계산된 합을 출력합니다.

5. 마무리

숫자를 문자열로 파악하여 계산후 형변환을 하여 푸는 접근을 알 수 있었다.