본문 바로가기

온라인 코딩/문자열(String)

[백준] 10808번 알파벳 개수

 

 

문제

소스코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<string>
#include<array>
constexpr int ALPHABET_LENGTH = 26;
 
int main() {
    std::array<int, ALPHABET_LENGTH>alphabetList{};
    std::string word;
 
    std::cin >> word;
 
    for (const auto& s : word) {
        int index = toupper(s) - 'A';
 
        alphabetList[index]++;
 
    }
 
    for (const auto& i : alphabetList)
        std::cout << i << " ";
 
 
}

 

 

후기

이 문제를 해결하기 위한 키워드는 받은 문자열을 하나씩 나눠서 alphabetList에 저장하는 것이다.

 

string 문자열로 단어를 받은 후 문자를 하나씩 돌면서 해당하는 문자를 정수형으로 변환하여 alphabetList에 해당하는 값을 증가한다. 

 

한 가지 주의사항은 대소문자 구별이 없기 때문에 toupper() 함수를 이용해 대문자로 변경하거나 tolower() 함수를 이용해 모든 문자를 소문자로 바꿔서 문제를 풀면 쉽게 풀 수 있다.

 

 

출처 및 레퍼런스

문제 링크: https://www.acmicpc.net/problem/10808