관리 메뉴

Storage Gonie

(11) [C++] 백준 No.11720 숫자의 합 본문

알고리즘/백준풀이1. 입출력

(11) [C++] 백준 No.11720 숫자의 합

Storage Gonie 2019. 4. 19. 13:49
반응형

문제

풀이

# C++

- 버퍼(string, char)를 사용하지 않고 해결한 버전

#include <cstdio>
int main() {
    int n;
    scanf("%d",&n);
    int sum=0;
    for (int i=0; i<n; i++) {
        int x;
        scanf("%1d",&x);       // %1d와 같이 해주면 1개씩 입력을 받음(%2d등과 같이 응용가능)
        sum += x;
    }
    printf("%d\n",sum);
    return 0;
}

- string 클래스를 이용한 버전

#include <iostream>

using namespace std;

int main(void)
{
    int N;
    string str;
    int result = 0;

    scanf("%d", &N);
    getchar();        // getline이 버퍼의 개행문자를 받아버리는 것을 방지하기 위함.
    getline(cin, str);

    
    for (int i =0; i < N; i++)
    {
        string num_str;          // stoi 함수는 string만을 인자로 받으므로 만든 string 변수
        num_str = str[i];        // 인덱스가 포함된 값은 선언과 할당을 분리시켜야 함.
        
        result += stoi(num_str); // string to int 형변환
    }
    printf("%d\n", result);
}

- char 배열 만으로 해결한 버전

#include <iostream>

using namespace std;

int main(void)
{
    int N;
    char s[100];
    int result = 0;

    scanf("%d", &N);
    scanf("%s", s);
     
    for (int i =0; i < N; i++)
    {
        int num;
        num = s[i] - '0'; // 문자 -> 정수 변환
        
        result += num;
    }
    printf("%d\n", result);
}

 

반응형
Comments