CS/백준 BOJ
[C++] 백준 10808번 - 알파벳 개수
seomoon
2020. 7. 2. 01:21
https://www.acmicpc.net/problem/10808
10808번: 알파벳 개수
단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.
www.acmicpc.net
#코드
#include <bits/stdc++.h>
using namespace std;
int alph[26];
int main(void)
{
string s;
cin >> s;
for (auto c : s)
alph[c - 'a']++;
for (auto n : alph)
cout << n << ' ';
}
#설명
알파벳을 저장할 배열을 전역에 선언합니다. (배열을 전역에 선언하면 배열의 원소들이 자동으로 0으로 초기화됩니다.)
알파벳 소문자 a ~ z 까지 총 26개를 저장하기 위해 크기는 26으로 선언했습니다.
for문에서 string (char 타입 배열)의 원소들, 즉 알파벳에 하나씩 접근하면서
알파벳의 순서에 해당하는 인덱스의 값을 증가시켜줍니다.
( 알파벳 소문자는 아스키코드 상에서 97 ~ 122이기 때문에 97(='a')을 빼서 0 ~ 26 사이의 숫자로 바꿔주었습니다. )
그리고 나서 배열 alpha의 원소들을 공백으로 구분해 하나씩 출력해주면 됩니다.