[BOJ]白駿10808号アルファベット数


リンク


https://www.acmicpc.net/problem/10808

質問する


小文字のみからなる単語Sを与える.各アルファベットが単語に何個含まれているかを求めるプログラムを作成します.

入力


1行目には単語Sがあります.単語の長さは100を超えず、アルファベットの小文字だけで構成されています.

しゅつりょく


単語に含まれるaの個数、bの個数、…とzの個数をスペースで区切る.

に答える

#include <iostream>
using namespace std; 
int freq[26]; 
// 전역변수로 선언하면 0으로 초기화됨.
int main() {
	ios::sync_with_stdio;
	cin.tie(0);
	string s;
	cin >> s; 

	for (auto c : s) {
		freq[c - 'a']++; 
		//'a'를 빼줌으로써 연속된 아스키코드를 이용함.
	}
	for (int i = 0; i < 26; i++)
		cout << freq[i] << ' ';
}

説明:


'a' 'b' ... '「z」はアスキーコード上で97~123で隣接しているので、「a」は0、「b」は1、「z」は25の場合は「a」を外せばよい.freq配列のインデックスを各アルファベットの意味として使用します.