[백준][C++] 10808번 알파벳 개수
10808번 알파벳 개수
문제 링크
분석
첫번 째 줄에 단어가 문자열로 주어집니다.
알파벳은 소문자로만 이루어져 있습니다.
알파벳이 각각 몇 번 나왔는지 공백으로 구분해서 출력해야합니다.
출력 순서는 a부터 z까지 순서대로 출력되어야 합니다.
풀이
#include <iostream>
#include <string>
#include <vector>
int main()
{
std::string input;
std::cin >> input;
// 알파벳 소문자 개수 저장
std::vector<int> count(26, 0);
// 단어의 알파벳 개수만큼 반복
for (char alphabet : input)
{
// 알파벳에 'a'를 빼주어 인덱스를 구하고, 개수를 1개 증가
count[alphabet - 'a']++;
}
// 출력을 위한 반복문
for (int i = 0; i < 26; ++i)
{
std::cout << count[i] << " ";
}
}
성능 요약
시간 복잡도는 $O(n)$입니다.
- 입력 반복문 $O(n)$
- 출력 반복문 $O(n)$
- $O(n) + O(n)$
공간 복잡도는 고정된 크기의 상수 공간을 사용하기 때문에 $O(1)$입니다.
메모리: 2028 KB
시간: 0 ms
댓글남기기