문제: 10808번: 알파벳 개수
basic-algo-lecture/workbook/0x03.md at master · encrypted-def/basic-algo-lecture
- 강의 코드
// Authored by : BaaaaaaaaaaarkingDog
// Co-authored by : -
// http://boj.kr/d7178d89538a42ababf4455443e60fe2
#include <bits/stdc++.h>
using namespace std;
int freq[26];
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
string s;
cin >> s;
for(auto c : s)
freq[c-'a']++;
for(int i = 0; i < 26; i++)
cout << freq[i] << ' ';
}
- 내 코드
#include <map>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
#include <iomanip> // setprecision을 사용하기 위한 헤더
#include <climits>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
string input;
cin >> input;
// 알파벳 개수 26개
int nums[26];
for (int i = 0; i < 26; i++)
nums[i] = 0;
for (int i = 0; i < input.size(); i++) {
nums[input[i] - 97]++;
}
for (int i = 0; i < 26; i++)
cout << nums[i] << " ";
cout << "\n";
return 0;
}
난 이렇게 풀었는데 강의 보니까 97 빼는 부분을 그냥 'a' 로 빼주는 것 같았다. 왜 지금까지 이렇게 안 했지? 왜 굳이굳이 숫자로 변환해서 뺐던 것일까.. 그래도 이제 알았으니까 걍 char 형으로 빼주면 될 듯.
참고자료:
BaaaaaaaarkingDog | [실전 알고리즘] 0x03강 - 배열