[백준] 11720번: 숫자의 합 - c++

삼식이·2025년 2월 27일
0

알고리즘

목록 보기
37/81

숫자의 합

문제

N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.

입력

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

출력

입력으로 주어진 숫자 N개의 합을 출력한다.

예제

문제 정의

처음에는 공백없이 n개의 숫자로 주어지기 때문에 입력받는 함수를 scanf로 풀이했다.

<1번 풀이-scanf>

#include <bits/stdc++.h>
using namespace std;
int n, s;
int main() {
    scanf("%d", &n);

    for (int i = 0; i < n; i++) {
        int a;
        scanf("%1d", &a);
        s += a;
    }

    printf("%d\n", s);
    return 0;
}

하지만 다른 풀이를 보니 입력받는 숫자를 한번에 string으로 받고
배열을 돌며 문자의 아스키코드를 이용해 숫자로 변환하는 것도 가능했다!

아직 아스키코드를 이용하는 것이 익숙하지 않으므로 다음 풀이방식을 유의깊게 보고 다음에 비슷한 문제에 활용해야겠다.

<2번 풀이-ascii code>

#include <bits/stdc++.h>
using namespace std;
int n, s;
int main()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  
  cin >> n;
  string num;
  cin >> num;

  for (char c : num) {
    s += c - '0';
  }

  cout << s << "\n";
  return 0;
}

0개의 댓글