이문제를 처음 봤을때 다른 문제들과는 다른 유형이어서 어떻게 하나 무척 고민했었고 결론부터 말하자면 구글신의 도움을 받았다.
우선 내가 아는 방식으로 문제를 불어보았으나 처참히 실패했다.
#include <stdio.h>
int main(){
int a, num,hap=0;
scanf("%d",&a);
scanf("%d",&num); //숫자를 다 같이 받아서
for(int i=0;i<a;i++){ //하나씩 쪼개서 합을 구함
hap+=num%10;
num/=10;
}
printf("%d",hap);
}
이후 아무리 생각해보아도 공백 없이 한자리 숫자씩 받을 수 있는 방법이 생각나지 않았고
결국 구글에 쳐봤는데 생각보다 쉬운 해결방법이었다.
#include <stdio.h>
int main(){
int a, num,hap=0;
scanf("%d",&a);
for(int i=0;i<a;i++){
scanf("%1d",&num); //입력 자리수를 하나로 제한해서 받기
hap+=num;
}
printf("%d",hap);
}
%d 사이에 숫자를 넣는거는 그저 자리를 맞추기 위해, 구구단을 만들 때 쓰는 방법이라고만 생각했었지만 새로운 응용법을 알게되서 너무 좋다!!
이것도 나중에 유용히 사용할 수 있는 방법인거같다
'프로그래밍 > 백준' 카테고리의 다른 글
문자열문자열 백준 10757 큰 수 구하기 - C언어 (2) | 2022.09.22 |
---|---|
6. 백준 1193 분수찾기 분명 어려운 문제가 아닌데 어렵다 -C 언어 (0) | 2022.07.26 |
4. 백준 15596 정수 n개의 합 구하기 (문제를 잘 읽자,사용자정의함수배열)- c언어 (0) | 2022.07.16 |
3. 백준 3052 나머지 겹치지 않는 숫자 구하기 - c언어 (0) | 2022.07.15 |
2. 백준 4344 평균은 넘겠지(feat.%프린트 하는 방법) - c 언어 (0) | 2022.07.15 |