티스토리 뷰

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
반응형
댓글