728x90
문제
N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
#include <iostream>
#include <vector>
#include <string>
#include <numeric>
using namespace std;
int main()
{
int count = 0;
string num;
vector<int> v;
int sum = 0;
cin >> count;
cin >> num;
for (int i = 0; i < num.length(); i++)
{
int inum = num[i] - '0';
v.push_back(inum);
}
sum = accumulate(v.begin(), v.end(), 0);
cout << sum;
}
문제 풀이
Vector을 사용하여 풀이
Char형 숫자 - Int형으로 변환
숫자의 아스키 값은 48번부터 0 ~ 9를 할당
Char형에서 48를 빼주면 순수한 숫자의 값을 얻을 수 있다.
하지만 가독성 면에서 좋지않아 '0'으로 작성하여 직관성있는 코드를 작성하였다.
#include numeric
accumulate( 시작 값, 마지막 값, 초기값 );
728x90
'Coding Test > 백준' 카테고리의 다른 글
[ 백준 ] 2750번 버블 정렬 - 수 정렬하기 (0) | 2024.02.06 |
---|---|
[ 백준 ] 1940번 투포인터 - 주몽 (3) | 2024.02.01 |
[ 백준 ] 1874번 스택 수열 (0) | 2024.01.26 |
[ 백준 ] 2018번 투 포인터 - 수들의 합 5 (0) | 2023.09.07 |
[ 백준 ] 1546번 자료구조 - 평균 구하기 (0) | 2023.09.06 |