• Home
  • About
    • 코드좀비 photo

      코드좀비

      An amazing website.

    • Learn More
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

백준 11720 숫자의 합 C++

05 May 2019

Reading time ~1 minute

이번 문제는 백준 11720 숫자의 합 C++ 입니다.

풀이

이문제는 정말 간단 합니다.

우선 코드를 보고 설명 드릴께요

#include <iostream>
#include <string>

using namespace std;

int converter(char a) {
	return a - '0';
}
int main() {
	int n;
	int sum = 0;
	string strings;
	cin >> n >> strings;

	for (int i = 0; i < n; i++) {
		sum += converter(strings.at(i));
	}

	cout << sum;

	return 0;
}

위 코드에서 string 으로 한번에 받아버렸는데요

문제에서 숫자가 100자까지로 제한 되어있기에 큰 문제가 없습니다.

(사실 정상적인 테스트환경이라면 읽다가 타임오버 날 정도 아닌 길이라면 string 으로 모두 받을 수 있습니다. string 이 얼만큼의 길이를 담을 수 있는지는 남은 메모리에 따라 달라지겠지만, 테스트 해본 사람들이 몇몇 있으니 한번 검색 해서 참고해 보시는거도 도움 될 겁니다. )

string 에서 특정 자리수의 문자를 받아오는건 string.at(x) <- string 문자열의 x 번째 자리를 반환 하게 됩니다.

그리고 받은 문자열을 converter 라는 함수를 만들어 해당 문자열에서 ‘0’ 을 빼게 만들었는데요

이렇게 하는 이유는 아스키코드를 사용 하기 때문입니다.

ex ) 0 의 아스키코드 -> x 라면 1의 아스키코드는 x+1 입니다. 이런식으로 숫자의 아스키코드를 외우지 않아도

간단하게 나타 낼 수 있습니다.

(변형하면 a~z 를 -‘a’ 를 통해서 a는 0으로 b는 1로 나타 낼 수 있습니다. )

오늘은 어린이 날이네요. 모두 즐거운하루



백준C++ Share Tweet +1