728x90
반응형
- 문제
알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오.
- 입력
첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.
- 출력
단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.
- 예제 입력
baekjoon
- 예제 출력
1 1 0 0 1 0 0 0 0 1 1 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0
- 접근방식
주어진 문자열을 분해하여 (Map 또는 Array)에 카운팅
String 이면 Map이 좋음, Int면 Array → 일부 경우 제외
- 코드
#include <iostream>
#include <algorithm>
using namespace std;
string s;
int cnt[26];
int main()
{
cin >> s;
for (char input : s)
cnt[input - 'a']++; // 배열 인덱스를 0~25까지 이동함
// cnt[input]++; // 이런식이면 배열 인덱스가 97~125기 때문에 앞에 빈공간이 생겨 앞으로 이동시켜줌
for (int i = 0; i < 26; i++)
cout << cnt[i] << " ";
return 0;
}
10808번: 알파벳 개수
단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.
www.acmicpc.net
728x90
반응형
'C++ > BOJ' 카테고리의 다른 글
[C++]/백준 11655 ROT13 (0) | 2023.01.12 |
---|---|
[C++]/백준 1159번 농구 경기 (0) | 2023.01.12 |
[C++]/백준 10988번 펠린드롬인지 확인하기 (0) | 2023.01.12 |
[C++]/백준 2979번 트럭 주차 (1) | 2023.01.12 |
[C++]/백준 2309번 일곱 난쟁이 (1) | 2023.01.12 |