알고리즘/백준

[C++] 백준 11720번 - 숫자의 합

Esunn 2022. 7. 27. 01:49

 

 

https://www.acmicpc.net/problem/11720

 

11720번: 숫자의 합

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

www.acmicpc.net

 

주어진 숫자의 각 자릿수의 숫자의 합을 구하는 문제 

예를 들어 15라면 1 + 5 = 6

이런식으로 합을 출력하는 문제이다.

 

#include <iostream>
#include <string>
using namespace std;

int main() {
	int n;
	string a;
	int result = 0;
	cin >> n >> a;

	for (int i = 0; i < n; i++) {
		result += a[i] - '0';
	}
	cout << result;
}

 

문자열을 이용해서 풀어줬다. 이 문제도 아스키코드를 이용해서 풀었다.

 


사실 이 문제는 조금 사연이 많은 문제이다.

이 문제를 처음에 풀기위해서 10으로 나누는 나머지를 활용했는데 

N이 100까지 나오기에 숫자가 100개가 나올 수 있다는 뜻이기에

정수 자료형으로는 담을 수 없다는것을 깨닫고 다른 풀이를 보고 풀었다.

 

문제 분류도 안보고 그냥 Class1에 있는 문제를 선택한거라 문자열로 접근한다는 생각이

너무 참신하게 느껴졌다. 문자열로 접근하니 구현자체는 그렇게 어렵지 않은 문제였다.

 

참고한 글들

https://develop247.tistory.com/22

 

[C언어] 백준 11720번 : 숫자의 합

백준 11720번 : 숫자의 합 - 사용언어 : C언어 www.acmicpc.net/problem/11720 1. 문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 2. 코드 #include int main(vo..

develop247.tistory.com

https://aorica.tistory.com/69

 

[백준] 11720번 숫자의 합 C / C++ 문제 풀이 문자열

문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진

aorica.tistory.com