티스토리 뷰

알고리즘(C++)/백준 알고리즘

11720번 : 숫자의 합

개발하는꼬물이 2017. 11. 17. 20:34

1. 문제 요약

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

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


2. 예제 입력

5
54321


3. 예제 출력

15


4. 코드

   1) 동적 배열 이용 

#include <iostream>
using namespace std;

int main()
{
	int n; // 숫자의 갯수

	cin >> n;

	char *arr = new char[n + 1];

	int total = 0;

	cin >> arr;

	for (int i = 0; i < n; i++)
	{
		total += arr[i] - 48;  // char형으로 받았으므로, 아스키코드 '0'의 값, 48을 빼줌
	}

	cout << total << endl;

	delete[] arr;

	return 0;
}


   2) char 형 변수 이용

#include <iostream>
using namespace std;

int main()
{
	int n; // 숫자의 갯수
	char ch;

	cin >> n;

	int total = 0;

	for (int i = 0; i < n; i++)
	{
		cin >> ch;
		total += ch - 48;  // char형으로 받았으므로, 아스키코드 '0'의 값, 48을 빼줌
	}

	cout << total << endl;

	return 0;
}

→ 사실 2)는 왜 되는건지 모르겠다... for문으로 저렇게 입력받으면 한번에 입력된 걸 1자씩 끊어서 인식하는건가?


'알고리즘(C++) > 백준 알고리즘' 카테고리의 다른 글

10817번 : 세 수  (0) 2017.11.19
9498번 : 시험 성적  (0) 2017.11.19
8393번 : 합  (0) 2017.11.17
1924번 : 2007년  (0) 2017.11.17
2441번 : 별찍기 -4  (0) 2017.11.17
댓글