문제
https://www.acmicpc.net/problem/10808
문제는 주어진 문자열에서 각 문자가 몇 번 나오는지 세는 것입니다.
문제를 해결하다
- 문제는 각 문자의 발생 횟수를 세어 해결할 수 있습니다.
- 문자열은 루프를 통과하고 각 문자가 나타나는 횟수는 벡터에 저장됩니다.
- 이때 알파벳은 아스키 코드 값으로 변환되어 계산된다.
소문자 a는 아스키 코드 값이 97이므로 각 알파벳의 출현 횟수를 저장하기 위해 벡터의 인덱스를 계산할 때 (알파벳의 ASCII 코드 값 – 97)을 사용한다.
암호
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// 각 알파벳이 몇 번 등장하는지 계산하는 함수
vector<int> countAlphabet(string s) {
vector<int> alpha(26, 0); // 알파벳의 개수만큼 0으로 초기화된 벡터 선언
for (char ch : s) {
alpha(ch - 'a')++; // 해당 알파벳의 등장 횟수 증가
}
return alpha;
}
int main() {
// 입력
string s;
cin >> s;
// 연산
vector<int> alpha = countAlphabet(s); // 각 알파벳의 등장 횟수를 저장한 벡터 반환받음
// 출력
for (int i = 0; i < 26; i++) {
cout << alpha(i) << ' ';
}
cout << '\n';
return 0;
}
끝
알파벳과 관련된 문제를 풀 때 ASCII 코드를 사용하십시오.