(구) solved ac class 문제들/class 1
[class 1]백준 숫자의 합(11720번) 풀이 (C++/Python)
isekaipudding
2026. 4. 16. 11:41
문제 : 숫자의 합(11720번)(Bronze IV)
문제 링크 : https://www.acmicpc.net/problem/11720
출처 : Baekjoon Online Judge
이 문제는 문자열의 크기 n을 입력하고 문자열로 이루어진 자리수들을 모두 다 더하는 문제입니다.
우선 C++ 소스 코드를 공개하고 설명 들어갑니다.
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
string s;
cin >> s;
int result = 0;
for(int i = 0; i < n; i++) {
result += s[i] - '0';
}
cout << result;
return 0;
}
우선 문자열의 크기 n과 문자열 s를 입력 받습니다.
그 다음 result = 0으로 선언하고 각 자리수들을 더하면 됩니다.
이 때 조심해야 할 것은 s[i]는 아스키코드(10진수)로 변환된 것이라서 만약 result += s[i]로 하면 다음과 같은 오류가 발생합니다.
[input]
5
54321
[output]
255
[answer]
15
문자 '1'은 10진수로 표현하면 49입니다.
그러므로 result += s[i]로 하면 49 + 50 + 51 + 52 + 53 = 255가 됩니다.
그러므로 문자 '0'(10진수로 표현하면 48)을 따로 빼줍니다.
문자 '1'와 문자 '0'을 빼면 49 - 48 = 1이 되어 실제 숫자 1이 나옵니다.
이렇게 해서 5 + 4 + 3 + 2 + 1 = 15가 나오게 됩니다.
Python에서는 문자열 크기 신경 안 써도 되므로 N는 장식입니다.
import sys
input = sys.stdin.readline
N:int = int(input().rstrip())
S:str = input().rstrip()
result:int = 0
for ch in S :
result += int(ch)
print(result)
in 연산자를 통해 문자열 S의 문자들을 ch로 한글자씩 추출하고
int()를 통해 문자 '5'를 바로 숫자 5로 바꿔줍니다.
정말 편리한 Python입니다.