알고리즘 연습

C++ 11720 숫자의 합

728x90

아으

#include<iostream>

using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(NULL);
	
	int N;
	cin >> N;

	char arr[N];
	int sum = 0;
	cin >> arr;
	for (int i = 0; i < N; i++) {
		sum += arr[i]-'0';
		}
	cout << sum << '\n';

	
}

다른 블로그를 보고 이렇게 코드를 작성했었지만 VS에서는 arr[N]이 (배열에 변수가 들어가는걸 용납하지 않는다) 안들어가서 작동이 되지 않지만 백준 코드에서는 정답처리가 되었다.

오늘 새로 문제를 풀었을 때에는 다른 방식을 사용했는데 코드는 아래와 같다.

#include <iostream>
#include<string>

using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(NULL);

	int n;
	cin >> n;
	string s;
	cin >> s;

	int res = 0;

	for (int i = 0; i < n; i++) {
		res += s[i]-48;
	}
	cout << res << '\n';
}

string을 사용하여 문자열의 형식으로 숫자를 받고 0의 아스키코드 숫자 48을 제거해 줌으로써 원하는 값을 얻어냈다.

처음에 n = 5, s = 54321을 입력하고 값을 확인했을 때 255가 나오길래 이게 뭐지? 왜 다르게 나오지? 싶어서 확인했더니 문자열로 입력이 되어 어쩔수 없었다.

728x90

'알고리즘 연습' 카테고리의 다른 글

C++ 10818 최대/최소  (0) 2021.09.24
C++ 1157 단어공부 // transform(대/소문자)  (0) 2021.09.24
백준 2753 C++ 윤년  (0) 2021.09.24
c++ 2908 상수  (0) 2021.09.24
C++ 백준 2844 알람시계  (0) 2021.09.24