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

Date:     Updated:

카테고리:

태그:

Baekjoon 카테고리 내 다른 글 보러가기

댓글남기기