반응형
쉬운 문제다
알파벳을 의미하는 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 << " ";
}
반응형
'백준 > 구현' 카테고리의 다른 글
[백준 9935번 / C++] 문자열 폭발 (0) | 2022.01.17 |
---|---|
[백준 2979번 / C++] 트럭 주차 (0) | 2022.01.17 |
[백준 2309번/ C++] 일곱 난쟁이 (0) | 2022.01.17 |
[백준 2559번 / C++ ] 수열 (0) | 2022.01.14 |
[백준 9996번/ C++] 한국이 그리울 땐 서버에 접속하지 (1) | 2022.01.13 |
댓글