Programing/백준, 프로그래머스(C++)

[C++][백준 11720] 숫자의 합

hye3193 2024. 12. 31. 14:12

https://www.acmicpc.net/problem/11720

 

제출했던 코드

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int n;
    int sum = 0;
    string num;

    cin >> n;
    cin >> num;
    for (int i = 0; i < n; i++)
    {
        sum += stoi(num.substr(i, 1));
    }
    cout << sum;
}

* stoi: string 형을 int 형으로 변환해주는 함수

substr을 이용해서 문자열을 자르고 stoi 함수로 int 형태로 변환해 주었다

 

추가 풀이

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int n;
    int sum = 0;
    string num;

    cin >> n;
    cin >> num;
    for (int i = 0; i < n; i++)
    {
        sum += num[i] - '0';
    }

    cout << sum;
}

string 변수에 인덱스를 통해 접근하면 char 형태로 반환되는데, char 형태는 아스키 코드를 사용하기 때문에 바로 숫자 형태로 변환할 수가 있다

'0'의 아스키 코드 값은 48이라 '0'을 빼거나 48을 빼 주면 정수형태로 변환할 수가 있다