※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 10808번 문제인 알파벳 개수이다.
문제는 아래 링크를 확인하자.

www.acmicpc.net/problem/10808

 

10808번: 알파벳 개수

단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

www.acmicpc.net

이 문제는 주어진 문자열에 들어있는 각 알파벳의 개수를 출력하는 문제이다.

ASCII 코드와 반복문을 이용해 문제를 풀어보자.

 

문자열 s에서의 'a'의 개수는 문자열 s를 살펴보면서 'a'의 개수를 직접 세어 구할 수 있다.

마찬가지로 문자열 s에서의 'b'의 개수는 문자열 s를 살펴보면서 'b'의 개수를 직접 세어 구할 수 있다.

 

'a' 이상 'z' 이하의 각 문자에 대하여 위와 같이 문자열 s를 한번씩 살펴보면서 각 알파벳의 개수를 세는 코드를 작성해 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::string;

int main() {
    string s;
    cin >> s;
    for (int i = 97;i < 123;i++) { // ASCII 코드: char(97)~char(122)는 a~z이다
        int cnt = 0;
        char alphabet = char(i);
        int slen = s.length();
        for (int j = 0;j < slen;j++) { // string s의 각 글자가 현재 알파벳인지 확인
            if (s[j] == alphabet) {
                cnt += 1;
            }
        }
        cout << cnt << ' ';
    }
}

 

 

728x90

'BOJ' 카테고리의 다른 글

[BOJ 1977 // C++] 완전제곱수  (0) 2021.01.03
[BOJ 1475 // C++] 방 번호  (0) 2021.01.02
[BOJ 10988 // C++] 팰린드롬인지 확인하기  (0) 2021.01.01
[BOJ 2576 // C++] 홀수  (0) 2020.12.30
[BOJ 14470 // C++] 전자레인지  (0) 2020.12.29

+ Recent posts