• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • [Baekjoon(백준)][10808번] 알파벳 개수(C++)
    2024년 01월 23일
    • 유니얼
    • 작성자
    • 2024.01.23.:11
    728x90

    안녕하세요! 오늘은 코딩테스트 문제 중 하나인 "알파벳 갯수" 문제를 해결하는 방법에 대해 설명하려고 합니다. "알파벳 빈도수" 문제는 알파벳 소문자로만 이루어진 단어가 주어졌을 때, 각 알파벳이 단어에 몇 개 포함되어 있는지 구하는 문제입니다. 문제를 해결하는 과정과 코드를 자세히 알아보겠습니다.

    문제링크:

    https://www.acmicpc.net/problem/10808

     

    10808번: 알파벳 개수

    단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

    www.acmicpc.net

    Question

    문제 개요

    "알파벳 갯수" 문제는 알파벳 소문자로만 이루어진 단어가 주어졌을 때, 각 알파벳이 단어에 몇 개 포함되어 있는지 구하는 문제입니다. 이 문제는 문자열 처리와 자료구조를 활용하는 기본적인 알고리즘 능력을 평가합니다.

    해결 방법

    이 문제의 핵심은 문자열에 포함된 각 알파벳의 빈도를 효율적으로 계산하는 것입니다. 이를 위해 C++의 map을 사용하여 각 알파벳의 출현 횟수를 저장하고 계산합니다.

    코드 구현

    #include <iostream>
    #include <map>
    using namespace std;
    
    string str; // 입력받을 문자열
    
    int main()
    {
        ios_base::sync_with_stdio(false);
        cin.tie(NULL);
        cout.tie(NULL);
        cin >> str; // 문자열 입력
    
        map<char, int> alpha; // 알파벳을 키로 하고 빈도수를 값으로 하는 맵
    
        // 알파벳 소문자에 대한 맵 초기화
        for (int i = 97; i <= 122; i++) {
            char a = i;
            alpha[a] = 0;
        }
    
        // 문자열을 순회하며 각 알파벳의 빈도수 계산
        for (int i = 0; i < str.size(); i++) {
            alpha[str[i]] += 1;
        }
    
        // 알파벳 소문자의 빈도수 출력
        for (int i = 97; i <= 122; i++) {
            char a = i;
            cout << alpha[a] << " ";
        }
    }

    코드 설명

    이 코드는 주어진 문자열 str에 대해 각 알파벳의 빈도수를 계산합니다. map 자료구조를 이용하여 알파벳을 키로 하고 해당 알파벳의 빈도수를 값으로 저장합니다. 문자열을 순회하면서 각 문자에 해당하는 map의 값을 증가시킵니다. 마지막으로, 모든 알파벳에 대한 빈도수를 출력합니다.

    결론

    "알파벳 빈도수" 문제는 문자열 처리와 map을 이용한 데이터 저장 및 접근 방법을 통해 해결할 수 있습니다. 이러한 접근 방식은 문자열에서 특정 문자의 빈도수를 계산하거나, 데이터의 카운팅이 필요한 다양한 문제에 적용될 수 있습니다.

    반응형
    다음글
    다음 글이 없습니다.
    이전글
    이전 글이 없습니다.
    댓글
조회된 결과가 없습니다.
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바