개발자/문제풀이 (C언어)
[백준/BOJ] 11720번 숫자의 합 (C/C++)
devBB
2022. 6. 6. 23:41
728x90
반응형
백준 온라인 저지(BOJ) 11720번 숫자의 합
https://www.acmicpc.net/problem/11720
11720번: 숫자의 합
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
www.acmicpc.net
* 사용언어 : C언어, C++
1. 문제
공백없이 쓰여진 N (1 ≤ N ≤ 100) 개의 숫자를 모두 합하여 출력
2. 풀이
문제에 대한 설명이 매우 간소화된 문제입니다.
이런 경우 입력, 출력 예제를 통해 출제자의 의도를 파악할 수 있습니다.
둘째 줄에 주어지는 N개의 숫자는 공백이 없기 때문에 몇 자리 수인지 모르는게 문제였습니다.
예제를 볼 때 N개 만큼 숫자가 주어지는 걸로 봐서 전부 한 자리로 보는 것 같습니다.
둘째 줄의 숫자를 정수형으로 입력받아서 10 씩 나누면서 처리하려했다가
100자리 숫자를 한 번에 입력받을 수 없어서 포기했습니다.
따라서 문자로 한 글자씩 입력받은 후 숫자로 변환해서 처리했습니다.
ASCII 표에 따라 문자 '0' 은 10진수 48, '1' 은 49, ... 이므로 -48 하여 숫자로 변환 가능합니다.
3. 코드
#include <stdio.h>
int main() {
int n;
scanf("%d ", &n);
int sum = 0;
char c;
for (int i = 0; i < n; ++i) {
scanf("%c", &c);
sum += c - 48;
}
printf("%d\n", sum);
return 0;
}
* 크기가 100 인 문자열 배열 생성 후 %s로 한 방에 scanf 하고 1글자씩 처리해도 됩니다.
728x90
반응형