Do it! 알고리즘 코딩테스트 C++

Do it! 알고리즘 코딩테스트 | 1. 자료구조 - 배열과 리스트 | 001 숫자의 합 구하기

jai051031 2025. 11. 25. 01:05
문제 정보
백준 11720번 숫자의 합
https://www.acmicpc.net/problem/11720

 

문제

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

입력

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

출력

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

예제 입력 1 

1
1

예제 출력 1 

1

예제 입력 2 

5
54321

예제 출력 2 

15

예제 입력 3 

25
7000000000000000000000000

예제 출력 3 

7

예제 입력 4 

11
10987654321

예제 출력 4 

46

 

Do it! 시리즈인 알고리즘 코딩테스트 C++ 교재 학습을 시작하였다.

 

//내 코드
#include<iostream>
using namespace std;
int main(){
    int n, sum=0;
    string m;
    cin >> n;
    cin >> m;
    for(int i=0; i<n; i++){
        sum = sum + m[i] - 48;
    }
    cout << sum;
}

 

//정답 코드
#include <iostream>
using namespace std;

int main()
{
	int N = 0;
	string numbers;
	cin >> N;
	cin >> numbers;

	int sum = 0;;
	for (int i = 0; i < numbers.length(); i++){
		sum += numbers[i] - '0';	 // numbers[i]를 정수 값으로 계산하여 sum에 더하여 누적하기
	}
	cout << sum << "\n";
}

 

첫번째 문제인 만큼 쉽게 풀 수 있었다.

여기서 포인트는 숫자를 정수로 받는 것이 아닌 문자열로 받아야 한다. 공백 없이 값이 주어지기에 숫자 각각의 합을 구하려면 문자열로 입력을 받고 문자를 정수값으로 계산하여 합을 구한다.