백준 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);
}
'백준 > 이걸 몰랐네' 카테고리의 다른 글
예제 입출력은 분명 맞는데 틀렸다고 할때 대처법 (0) | 2020.08.31 |
---|---|
배열을 fill()로 초기화해주자. (0) | 2020.08.31 |
[c++]리스트 sort 하는 방법 (0) | 2020.08.29 |
std::string 빈 문자열에 값 대입하는 방법 (0) | 2020.08.27 |
cin과 scanf는 공백 문자를 어떻게 인식하는가 (0) | 2020.08.25 |