[BOJ 11720] 숫자의 합
1) 문제 링크
https://www.acmicpc.net/problem/11720
2) 접근
Getchar()를 이용하여 한 글자씩 입력받는 아이디어로 풀었다. 0의 아스키 코드는 48이니 숫자로 계산할 땐 입력받은 아스키 코드 값에서 48을 빼는 방식으로 연산하면 된다.
3) 아이디어 + 풀이
#include <iostream>
using namespace std;
int main(void){
int N, sum = 0;
char num;
cin >> N;
getchar();
for(int i=0; i<N; ++i){
num = getchar();
sum += (num-48);
}
cout << sum;
return 0;
}
4) 피드백 + 다른 정답들
다 풀고 나니 이런 생각이 들었다.
- 사이사이에 공백이 아닌 문자로 구분된다면?
- 문자의 개수는 random하고 종류만 동일한 방식이라면?
첫 번째 경우는 getchar() 여러 번 쓰는 걸로 어떻게 되겠지만, 두 번째 경우는… while 문에 getchar() 넣고 돌려야 될라나?
Leave a comment