관리 메뉴

cococo-coding

10808번. 알파벳 개수 본문

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

10808번. 알파벳 개수

_dani 2023. 12. 10. 19:00

최종 코드

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

int main() {
    //1. 단어s를 입력받는다.
    //2. 각 알파벳 개수를 센다.
    //3. 각 알파벳 개수를 출력한다. 
    //a=97 z=122 총 알파벳 수는 25개 -> 즉 배열은 인덱스 0~25까지 크기 26인 배열을 생성해줘야 함

    //1
    string s;
    cin >> s;

    //2
    int cnt [26]={0,}; //센 알파벳 개수를 넣을 배열 (97~122만 쓸 것)
    int len=s.length();
    
    for(int i=0; i<len; i++){
        cnt[s[i]-'a']++; 
    }

    //3
    for(int j=0; j<26; j++){
        cout << cnt[j] << ' ';
    }
    return 0;
}

2번에서 많이 헤맸다. 처음에는 s[i]와 cnt[j]로 각각 잡아서 이중포문으로 코드를 짰으나, 계속해서 단어의 개수만큼 cnt배열이 출력되는 문제가 발생했다. 

구글링을 해보니 위의 cnt[s[i]-'a']와 같은 코드로 작성한 분들이 많이 보였다. 이런 알파벳 개수와 비슷한 문제가 많이 나오니 이 부분은 외워두는 게 좋을 것 같다. 

2023.12.10