코딩테스트/programming_C++
baekjoon #11720_숫자의 합_c++
prometedor
2021. 10. 25. 21:28
#include<iostream>
#include<string>
int main() {
int N, sum = 0;
std::cin >> N;
std::string str;
std::cin >> str;
for (std::size_t i = 0; i < str.length(); i++) {
sum += str[i] - '0'; // 자동 형변환
}
std::cout << sum;
}
str[i]는 string타입이지만 int 타입으로 자동 형변환 되어 아스키로 변형됨
문자 '0'의 아스키 값이 48이므로, 아래와 같이 문자 '0'을 빼서 원래 숫자의 값을 나타낼 수 있음
'1' - '0' = 49 - 48 = 1
'2' - '0' = 50 - 48 = 2
'3' - '0' = 51 - 48 = 3
.
.
.
'8' - '0' = 56 - 48 = 8
'9' - '0' = 57 - 48 = 9