일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 패스트캠퍼스
- 패스트캠퍼스혁펜하임
- C++ 공백 입력
- 혁펜하임강의
- precision
- C++ 백준
- 1로만들기
- 조건문
- 백준
- for문
- C++
- 1463
- 백준1026
- 9095
- AI강의
- 혁펜하임
- 백준C++
- AIDEEPDIVE
- tensorflow
- 혁펜하임AI
- cuDNN
- c++ 기초
- C++ 함수
- pytorch
- 비교연산자
- 혁펜하임강의후기
- 백준1463
- 반복문
- 백준9095
- CUDA
- Today
- Total
코딩하는 덕구 🐶
42. C++ 백준 11720 번 숫자의 합 본문
안녕하세요! 코딩하는 덕구입니다!
정수를 문자열로 입력받는 문제인 C++ 백준 11720 번 입니다!
문제
N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
출력
입력으로 주어진 숫자 N개의 합을 출력한다.
https://www.acmicpc.net/problem/11720
11720번: 숫자의 합
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
www.acmicpc.net
제 코드입니다!
#include <iostream>
#include <string>
using namespace std;
int main(){
int N, sum = 0;
string word;
cin>>N>>word;
for(int i = 0; i<N; i++)
sum = sum + word[i] - '0'; //문자형 숫자를 숫자로 변환하고 합함
cout<<sum;
return 0;
}
먼저 string 을 쓰기위해 #include<string> 을 해주었고
string 형식의 문자열은 배열처럼 단어 하나씩 접근할 수 있습니다!
예를 들어 string "12345";
string[0] == 1 이렇게요!
다만 숫자를 문자 형식으로 입력 받았기 때문에 각 문자들을 더하려면 숫자로 변환해주어야 되는데
그냥 문자 +(아무 연산) 숫자 해주면 숫자로 변합니다!
문자는 각 아스키에 맞게 숫자로 변하죠!
예를들어 '0' - '0'(아스키 넘버 빼줌) 이 연산을 하면
문자 형식의 0이 숫자 0 이 되겠죠! 같은 숫자끼리 빼니까
문자 0 의 (숫자 0 아님) 아스키가 기억은 안나지만 0~9까지 아스키도 1 씩 증가를 하므로
'1' 을 숫자 1로 변환 시키려면 '1' - '0' 해주면 되겠죠!
그래서 word[i] - '0' 연산이 나온겁니다!
그럼 이 숫자들을 다 더해서 출력만 하면 됩니다!
C++ 백준 11720 번 이었습니다! 감사합니다~!
'알고리즘 문제 풀이' 카테고리의 다른 글
44. C++ 백준 2675 번 문자열 반복 (0) | 2022.01.25 |
---|---|
43. C++ 백준 10809 번 알파벳 찾기 (0) | 2022.01.25 |
41. C++ 백준 11654 번 아스키 코드. C++ ASCII 코드 (0) | 2022.01.25 |
40. C++ 백준 1065 번 한수 (0) | 2022.01.25 |
39. C++ 백준 4673 번 셀프 넘버 (0) | 2022.01.25 |