백준/이걸 몰랐네

백준 11720번 숫자의 합(문자로 안 받고 정수로 받기)

발전생 2020. 8. 30. 16:12

백준 11720번 문제를 풀고서 남들은 어떻게 풀었나 보기 위해 구글에 검색을 해봤다.

그런데 상위 글들 전부 문자로 받아서 '0' 아스키 코드와의 차이를 이용한 풀이였다.

 

그래서 이런 방법도 가능하다는 걸 기록에 남기고자 한다.

그냥 정수로 받을 수 있다. 단 1자리씩 받는 것이다.

scanf("%1d", &num);

이런 식으로 %d 사이에 1을 끼워줌으로서 1개만 받겠다고 컴퓨터에게 말해주는 것이다.

 

전체 코드는 이렇다.

#include <cstdio>

using namespace std;
int main() {
	int num;
	int n;

	scanf("%d", &n);

	int sum = 0;

	for (int i = 0; i < n; i++) {
		scanf("%1d", &num);
		sum += num;
	}

	
	printf("%d\n", sum);
}