출처:https://www.acmicpc.net/problem/10808
알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오.
문자열에 있는 알파벳의 개수를 구하는 문제이다. 문제자체는 사실 어렵지 않지만, 아이디어가 정말 중요하고 응용이 많이되는 아이디어이다.
Alphabet[0] = a의 개수
Alphabet[1] = b의 개수
...
같이 배열의 인덱스에 "의미"를 부여하는 과정이 들어가기 때문에, 반복문을 줄일 수 있게 된다.
#include <bits/stdc++.h>
using namespace std;
int main()
{
int alphabet[26];
for (int i = 0; i < 26; i++)
{
alphabet[i] = 0;
string s;]
'
cin >> s;
for (int i = 0; i < s.length(); i++)
{
alphabet[s[i] - 'a'] += 1;
}
for (int i = 0; i < 26; i++)
{
cout << alphabet[i] << " ";
}
return 0;
}