백준/구현

[백준 10808번 / C++] 알파벳 개수

배발자 2022. 1. 17.
반응형

쉬운 문제다 

 

알파벳을 의미하는 26개의 배열을 생성하여 문자열이 입력되면 

해당 사이즈만큼 돌아보면서 특정 알파벳을 의미하는 배열의 count 값을 올려준다. 

 

여기서 <문자 - '특정문자'> 라는 것은 아스키코드로 나타낼수 있다. 

 

만약 s[0] 은 알파벳 a를 뜻하는 거라면 소문자 a 는 아스키 코드값으로 97이다

이 문자에 같은 아스키코드를 갖는 'a' 를 빼주면 값은 0이 된다. 

 

즉, 알파벳을 의미하는 배열 인덱스 0을 가리키게 된다. 

만약 s[0] 이 'c' 이고 해당 문자에 -'a' 를 해준다면 99 - 97 이 되어서 값이 2가 된다. 

#include <iostream>
#include <algorithm>
using namespace std;
int a[26];
int main() {
	string s; cin >> s;
	for (int i = 0; i < s.size(); i++) {
		a[s[i] - 'a']++;
	}
	for (auto x : a)cout << x << " ";
}

 

 

10808번: 알파벳 개수

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

www.acmicpc.net

 

반응형

댓글