※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 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 << ' ';
}
}
'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 |