Date:

1) 문제 링크

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

2) 접근

Getchar()를 이용하여 한 글자씩 입력받는 아이디어로 풀었다. 0의 아스키 코드는 48이니 숫자로 계산할 땐 입력받은 아스키 코드 값에서 48을 빼는 방식으로 연산하면 된다.

3) 아이디어 + 풀이

#include <iostream>
using namespace std;

int main(void){
    int N, sum = 0;
    char num;

    cin >> N;
    getchar();
    for(int i=0; i<N; ++i){
        num = getchar();
        sum += (num-48);
    }
    cout << sum;

    return 0;
}

4) 피드백 + 다른 정답들

다 풀고 나니 이런 생각이 들었다.

  • 사이사이에 공백이 아닌 문자로 구분된다면?
  • 문자의 개수는 random하고 종류만 동일한 방식이라면?

첫 번째 경우는 getchar() 여러 번 쓰는 걸로 어떻게 되겠지만, 두 번째 경우는… while 문에 getchar() 넣고 돌려야 될라나?

Leave a comment