알고리즘/백준풀이1. 입출력
(11) [C++] 백준 No.11720 숫자의 합
Storage Gonie
2019. 4. 19. 13:49
반응형
문제
풀이
# C++
- 버퍼(string, char)를 사용하지 않고 해결한 버전
#include <cstdio>
int main() {
int n;
scanf("%d",&n);
int sum=0;
for (int i=0; i<n; i++) {
int x;
scanf("%1d",&x); // %1d와 같이 해주면 1개씩 입력을 받음(%2d등과 같이 응용가능)
sum += x;
}
printf("%d\n",sum);
return 0;
}
- string 클래스를 이용한 버전
#include <iostream>
using namespace std;
int main(void)
{
int N;
string str;
int result = 0;
scanf("%d", &N);
getchar(); // getline이 버퍼의 개행문자를 받아버리는 것을 방지하기 위함.
getline(cin, str);
for (int i =0; i < N; i++)
{
string num_str; // stoi 함수는 string만을 인자로 받으므로 만든 string 변수
num_str = str[i]; // 인덱스가 포함된 값은 선언과 할당을 분리시켜야 함.
result += stoi(num_str); // string to int 형변환
}
printf("%d\n", result);
}
- char 배열 만으로 해결한 버전
#include <iostream>
using namespace std;
int main(void)
{
int N;
char s[100];
int result = 0;
scanf("%d", &N);
scanf("%s", s);
for (int i =0; i < N; i++)
{
int num;
num = s[i] - '0'; // 문자 -> 정수 변환
result += num;
}
printf("%d\n", result);
}
반응형