반응형
문제를 풀기 위해서는 주어진 숫자의 각 자리수를 더하는 방법을 알아야 합니다.
파이썬에서는 여러 가지 방법이 있지만, 가장 간단한 방법은 다음과 같습니다.
- 숫자를 문자열로 변환하고, 각 문자를 다시 정수로 변환하여 더한다.
- 숫자를 10으로 나누면서 나머지를 더하고, 몫을 다시 10으로 나누는 과정을 반복한다.
1)
첫 번째 방법은 str() 함수와 int() 함수를 사용하여 구현할 수 있습니다.
예를 들어, 123이라는 숫자를 입력받았다면, 다음과 같이 코드를 작성할 수 있습니다.
# 첫째 줄에 숫자의 개수 N을 입력받는다.
N = int(input())
# 둘째 줄에 숫자 N개를 공백없이 입력받는다.
num = input()
# 숫자를 문자열로 변환하고, 각 문자를 정수로 변환하여 더한다.
sum = 0
for digit in num:
sum += int(digit)
# 결과를 출력한다.
print(sum)
2)
두 번째 방법은 // 연산자와 % 연산자를 사용하여 구현할 수 있습니다.
예를 들어, 123이라는 숫자를 입력받았다면, 다음과 같이 코드를 작성할 수 있습니다.
# 첫째 줄에 숫자의 개수 N을 입력받는다.
N = int(input())
# 둘째 줄에 숫자 N개를 공백없이 입력받는다.
num = int(input())
# 숫자를 10으로 나누면서 나머지를 더하고, 몫을 다시 10으로 나누는 과정을 반복한다.
sum = 0
while num > 0:
sum += num % 10
num //= 10
# 결과를 출력한다.
print(sum)
두 방법 모두 정답이지만, 두 번째 방법이 더 효율적이라고 할 수 있습니다.
왜냐하면, 첫 번째 방법은 문자열과 정수 사이의 변환 과정이 필요하고, 두 번째 방법은 숫자의 크기에 따라 반복 횟수가 달라지기 때문입니다.
반응형
'Algorithm > baekjoon' 카테고리의 다른 글
[백준 1085 자바/Java] 직사각형에서 탈출 (0) | 2023.05.25 |
---|---|
[백준 2920 자바/Java] 음계 (0) | 2023.05.23 |
[백준 9086 파이썬/python] 문자열 (0) | 2023.03.05 |
[백준 2743 파이썬/python] 단어 길이 재기 (0) | 2023.03.05 |
[백준 11654 파이썬/python] 아스키코드 (0) | 2023.03.04 |