[프로그래머스 / C++] 문자 개수 세기

YH·2023년 12월 3일
0

문제

문자 개수 세기 : 문제 링크


문제 분석

  • 알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때, my_string에서 'A'의 개수, my_string에서 'B'의 개수,..., my_string에서 'Z'의 개수, my_string에서 'a'의 개수, my_string에서 'b'의 개수,..., my_string에서 'z'의 개수를 순서대로 담은 길이 52의 정수 배열을 return
  • my_string에서 'A'부터 'z'까지의 개수를 순서대로 담을 정수 배열 answer을 52 크기로 각각을 0으로 초기화. for loop를 사용하여 my_string의 첫번째부터 마지막 원소까지 순환하고, if문을 통해 대문자일 경우 해당 문자에서 65를 뺀 인덱스 위치의 숫자를 1씩 늘림. else if문을 통해 소문자일 경우 해당 문자에서 71을 뺀 인덱스 위치의 숫자를 1씩 늘림('a'는 아스키 코드표에 의하면 97이고, 대문자의 마지막 인덱스는 25이므로). loop 탈출 후, 최종적으로 저장된 answer을 return

풀이

#include <string>
#include <vector>

using namespace std;

vector<int> solution(string my_string) {
    vector<int> answer(52, 0);
    
    for(int i = 0; i < my_string.size(); ++i) {
        if('A' <= my_string[i] && my_string[i] <= 'Z') {
            answer[my_string[i] - 65]++;
        }
        else if('a' <= my_string[i] && my_string[i] <= 'z') {
            answer[my_string[i] - 71]++;
        }
    }
    return answer;
}
profile
Keep Recycling Your Dreams

0개의 댓글