Algorithm/C

[백준] 11720번 : 숫자의 합 C/C++ 문제풀이 솔루션

Printemp 2021. 10. 28.

문제

N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

출력

입력으로 주어진 숫자 N개의 합을 출력한다.

 

 

 

 

 

 

 

 

 

1바이트씩 저장되는 char형의 특징을 이용하여 문제를 해결했다. char형의 배열을 선언하여 붙어서 주어지는 문자들을 하나씩 분리시켜 배열에 저장할 수 있었다. 배열의 크기는 동적할당을 이용하지 않고 N의 범위가 1부터 100까지인 것을 고려하여 100으로 정했다.

scanf에서 char형의 변수를 입력받을때 맨 처음(배열의 첫 원소)에 이상한 값이 들어가는것을 확인할 수 있을것이다. 이것은 \n 줄바꿈 문자가 scanf에 입력된 것으로 " %c" 와 같이 앞에 한 칸의 공백을 만들어주면 된다.

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main()
{
	int k, i, sum = 0;
	char ar[100] = { 0 };
	scanf("%d", &k);
	for (i = 0; i < k; i++)
		scanf(" %c", &ar[i]);
	for (i = 0; i < k; i++)
		ar[i] -= 48;
	for (i = 0; i < k; i++)
		sum += ar[i];
	printf("%d", sum);
}

댓글

💲 추천 글