[백준] 11720번 숫자의 합 C / C++ 문제 풀이 문자열
2019. 9. 24. 09:55ㆍ알고리즘/백준
728x90
반응형
문제
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
문제 풀이
#include<stdio.h>
int main(){
int n, sum = 0;
scanf("%d", &n);
char arr[n];
scanf("%s", &arr);
for(int i = 0; i < n; i++){
sum += arr[i] - '0';
}
printf("%d", sum);
}
n을 입력받은 뒤, char형 배열에 string 형태로 숫자를 입력받았습니다. 그러면 arr 배열에 처음부터 들어갑니다.
123을 입력하면 arr[0]에 '1', arr[1]에 '2', arr[2]에 '3'이 입력됩니다.
for 문에서 값을 더하고 있는데 그냥 더하면 char형이기 때문에 아스키코드 값이 더해집니다. 그러므로 '0'을 빼서 아스키코드 값이 실제 숫자 값에 대응할 수 있도록 하였습니다.
123이 입력되었다 가정하면
'1' - '0' = 49 - 48 = 1
'2' - '0' = 50 - 48 = 2
'3' - '0' = 51 - 48 = 3 이 되므로
sum에 입력된 각 자리 값을 더할 수 있습니다.
출처 : https://www.acmicpc.net/problem/11720
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2675번 문자열 반복 C++ 문제 풀이 문자열 (0) | 2019.09.30 |
---|---|
[백준] 10809번 알파벳 찾기 C++ 문제 풀이 문자열 (0) | 2019.09.26 |
[백준] 11654번 아스키 코드 C / C++ 문제 풀이 문자열 (0) | 2019.09.23 |
[백준] 1065번 한수 C++ 문제 풀이 함수 (0) | 2019.09.03 |
[백준] 15596번 정수 N개의 합 C++ 문제 풀이 함수 (0) | 2019.09.02 |