관리 메뉴

cococo-coding

10821번. 정수의 개수 (c++ 풀이) 본문

[BOJ] 코드 모음/C++_learning 문제집

10821번. 정수의 개수 (c++ 풀이)

_dani 2023. 12. 10. 18:10

최종 코드

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

int main() {
    //1. 문자열s를 입력받는다.
    //2. 정수의 개수를 구한다.
    //3. 정수의 개수를 출력한다.

    //1
    string s;
    cin >> s;

    //2
    int cnt=1;
    for(int i=0; i<100; i++){
        if(s[i]==','){
            cnt++;
        }
    }

    //3
    cout << cnt;
    return 0;
}

 

풀이 과정

백준의 예제와 출력을 보니 콤마의 개수로 정수 개수를 셀 수 있겠다는 생각을 했다. 콤마+1=정수이므로 콤마의 초깃값을 1로 설정하고 위와 같이 코드를 작성했다. 

다른 분들 코드를 보니까 뭔가 함수같은 거로 굉장히 간결하게 작성하셨던데, 아직 나는 그 정도 레벨은 아니라서 ^^,,

위 코드에서 string 클래스의 length(),  getline()으로 대체하면 아래 코드가 되는데 오히려 코드길이가 길어지긴 한다. 그래도 여러 가지 방법으로 풀어보는 습관을 가지는 게 좋은 듯 하다. 

 

다른 풀이

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

int main() {
    //1. 문자열s를 입력받는다.
    //2. 정수의 개수를 구한다.
    //3. 정수의 개수를 출력한다.

    //1
    string s;
    getline(cin,s);

    //2
    int cnt=1;
    int len=s.length();
    for(int i=0; i<len; i++){
        if(s[i]==','){
            cnt++;
        }
    }

    //3
    cout << cnt;
    return 0;
}