728x90
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
출처
- 문제를 만든 사람: baekjoon
- 데이터를 추가한 사람: jh05013
알고리즘 분류
- 수학
- 구현
- 문자열
문제 출처
https://www.acmicpc.net/problem/11720
문제 해결 방법
- 크기가 N인 char 형 배열을 동적 할당하여 생성한다.
- 그리고 숫자를 입력받은 후, for 문을 사용하여 각 요소에 접근하여 int 형으로 변환한 값을 합한 값을 sum 변수에 넣는다.
- char 형 숫자를 '0'으로 뺄 경우, int형 숫자를 얻을 수 있다.
- 숫자 0~9의 아스키 코드 값은 48~57이다.
- 문자 '0'(48)에서 문자 '0'(48)을 뺄 경우 0이 된다. 이런식으로 계속 계산해가면 문자 '9'(57)에서 문자 '0'(48)을 뺄 경우 9가 된다.
- char 형 숫자를 '0'으로 뺄 경우, int형 숫자를 얻을 수 있다.
- 최종적으로 sum 변수의 값을 출력한다.
코드
#include <iostream>
using namespace std;
int main() {
cin.tie(NULL);
cout.tie(NULL);
ios_base::sync_with_stdio(false);
int N, sum;
cin >> N;
char *ary = (char*)malloc(sizeof(char) * N);
cin >> ary;
sum = 0;
for (int i = 0; i < N; i++) {
sum += ary[i] - '0';
}
cout << sum << '\n';
delete(ary);
return 0;
}
채점 결과
참고
- [단계별로 풀어보기] > [문자열]
728x90
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ-25304][C++] 영수증 (0) | 2022.08.24 |
---|---|
[BOJ-3003][C++] 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2022.08.24 |
[BOJ-2675][C++] 문자열 반복 (0) | 2022.08.24 |
[BOJ-10890][C++] 알파벳 찾기 (0) | 2022.07.30 |
[BOJ-11654][C++] 아스키 코드 (0) | 2022.07.11 |
[BOJ-1065][C++] 한수 (0) | 2022.07.11 |
[BOJ-4673][C++] 셀프 넘버 (0) | 2022.07.11 |
[BOJ-15596][C++] 정수 N개의 합 (0) | 2022.07.11 |