Bakjoon Q11720 - C++
Q11720
Problem
N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
Input
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
Output
입력으로 주어진 숫자 N개의 합을 출력한다.
예제 입력
1
2
5
54321
예제 출력
1
15
나의 제출
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
int main(){
int T,a; //변수 선언
int sum=0; // "초기 initalize"
cin >> T; // 입력받을 길이 확인
while(T--){ // T가 0이 될 때 까지 loop
scanf("%1d", &a);
// "%1d" 를 이용해서 한자리 자연수로만 입력을 받음"
sum +=a;
}
cout << sum << endl;
}
추가 내용
cin은 편리하지만 세부적인 입력을 못 나눈다. 문자열 그대로, 숫자 뭉텅이 그대로 들어가므로, 불편해도 세부적인 구분을 할 수 있는 scanf가 이때는 빛을 발한다.
총평
scanf는 c에서만 쓰이는 구시대적인 것이 아니라 종종 쓰인다는 것. 그리고 %1d 라는 형식을 이용해 입력을 제한할 수도 있다는 것을 알았다.