본문 바로가기
자료구조와 알고리즘/알고리즘

문자열 카운팅.

by oncerun 2023. 7. 1.
반응형

 

문자열 및 숫자가 입력 값에 대해 몇 개가 존재하는지 검사해야하는 경우 추천하는 자료구조와 선택의 이유는 다음과 같다.

 

1. 배열

 

배열은 int 형으로 변환이 가능한 경우 추천한다. 다만 문자열이더라도 아스키 코드로 변환이 가능한 경우에는 배열을 사용하는 것이 유리할 수 있다.

 

 

 

2. Map

 

 map 자료구조는 <key, value> 쌍을 이루는 자료구조이다. 이는 String 혹은 입력의 크기가 1000만을 넘어가거나, 각 입력이 10만, 100만 과 같이 순차적으로 분리되어 들어오는 경우 추천한다.

 

 

 

이에 대한 연습 문제로 백준 10808번 문제를 풀어본다.

 

문제 해석.

 

문제 : 각 알파벳이 단어에 몇 개 포함되어 있는지 구하는 프로그램

 

입력은 알파벳 소문자 단어 ( 100을 넘지 않음)

 

출력은 알파벳 단어에 포함되어 있는 알파벳 횟수를 출력하되 공백으로 구분.

 

자료구조 : 해당 입력은 소문자로 아스키 코드로 변환이 가능하다. 이를 배열의 위치를 맞추도록 조정하여 해결할 수 있으니 배열을 사용한다.

 

#include <bits/stdc++.h>
using namespace std;
int cnt[26];
string input;

int main() {
    cin >> input;
    for(char alphabet : input) cnt[alphabet - 'a']++;
    for(int num : cnt) cout << num << ' ';
    return 0;
}
반응형

'자료구조와 알고리즘 > 알고리즘' 카테고리의 다른 글

Palindrome  (0) 2023.07.02
트럭 주차  (0) 2023.07.01
2309  (0) 2023.06.26
prefix sum  (0) 2023.06.25
c++ split  (0) 2023.06.23

댓글