작심 24/7

[백준] 11720번 숫자의 합 본문

백준

[백준] 11720번 숫자의 합

모닝수박 2020. 5. 20. 02:25
 

11720번: 숫자의 합

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

www.acmicpc.net

문자열을 정수로 변환하는 방법이 꽤 많았다.

그중 세 가지 방법으로 작성해보았다.

 

1. string으로 받고 '0'을 빼주어 정수로 변환

#include <iostream>
#include <string>
using namespace std;
int main() {
	int N, sum = 0;
	string st;
	cin >> N >> st;
	for (int i = 0; i < N; i++) sum += st[i] - '0';
	cout << sum;
	return 0;
}

 

2. string으로 받고 substr(시작 위치, 몇 개까지 추출할 건지) 함수를 이용해 나누기

#include <iostream>
#include <string>
using namespace std;
int main() {
	int N, sum = 0;
	cin >> N;
	string a;
	cin >> a;
	for (int i = 0; i < N; i++) {
		sum += atoi(a.substr(i, 1).c_str());
	}
	cout << sum;
	return 0;
}

 

3. char형 배열로 받기

atoi()가 포인트형을 받는거라 배열이 들어가지 않아서 간접적으로 넣어줬다.

#include <iostream>
#include <cstring>
using namespace std;
int main() {
	int N, sum = 0;
	cin >> N;
	char a[101], b[] = "0";
	cin >> a;
	for (int i = 0; i < N; i++) {
		b[0] = a[i];
		sum += atoi(b);
	}
	cout << sum;
	return 0;
}

'백준' 카테고리의 다른 글

[백준] 1929번 소수 구하기  (2) 2020.05.20
[백준] 1193번 분수찾기  (0) 2020.05.20
[백준] 15552 빠른 A+B  (0) 2020.05.20
[백준] 4839번 설탕 배달  (0) 2020.05.20
[백준] 11648번 지속  (0) 2020.05.20
Comments