문제 설명
https://www.acmicpc.net/problem/10808
10808번: 알파벳 개수
단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.
www.acmicpc.net
해결 방식
#include<iostream>
using namespace std;
int main()
{
string S;
cin >> S;
int alphabet[26] = {};
for (int i = 0; i < S.length(); i++)
{ alphabet[int(S[i])-97]++; }
for (int num : alphabet)
{ cout << num << " "; }
}
string S; cin >> S;
문자열 S를 입력받는다.
int alphabet[26] = {};
알파벳 개수를 저장할 배열을 만든다.
for (int i = 0; i < S.length(); i++)
{ alphabet [int(S[i])-97]++; }
문자열의 길이 만큼(S.length()) 반복하며 확인해보자
알파벳 소문자의 아스키코드는 97~122이다.
알파벳의 아스키코드 int(S[i])에서 97을 빼주면
a부터z까지는 0부터 25의 숫자가 된다.
배열의 해당 값을 하나씩 증가시키면 알파벳 개수를 구할 수 있다.
for (int num : alphabet)
{ cout << num << " "; }
for-each 로 결과를 출력한다.
'개발 > 백준' 카테고리의 다른 글
[백준] 11653번. 소인수분해 (C++) (1) | 2023.06.27 |
---|---|
[백준] 10809번. 알파벳 찾기 (C++) (0) | 2023.06.15 |
[백준] 9012번. 괄호 (C++) (0) | 2023.06.14 |
[백준] 11004번. K번째 수 (C++) (0) | 2023.06.14 |
[백준] 10989번. 수 정렬하기 3 (C++) (0) | 2023.06.14 |