[프로그래머스 / C++] 문자열 묶기

YH·2023년 11월 30일
0

문제

문자열 묶기 : 문제 링크


문제 분석

  • 문자열 배열 strArr이 주어진다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return
  • 가장 개수가 많은 그룹의 크기를 확인하기 위해 max() 함수를 사용하므로 algorithm 헤더를 include
  • strArr의 원소의 길이는 최소 1부터 최대 30이므로, 정수형 벡터 len을 31 크기로 0으로 초기화. 가장 개수가 많은 그룹의 크기를 저장할 정수 answer을 0으로 초기화. for loop를 통해 strArr의 첫번째부터 마지막 원소까지 순환하고, len에서 해당 인덱스의 문자열의 길이의 인덱스를 1씩 늘림. max() 함수를 사용하여, len[i]에 저장된 개수가 answer보다 크다면 더 큰수를 answer에 저장. loop를 탈출한 후, 최종적으로 저장된 answer을 return

algorithm 헤더의 max() 함수 사용법
const T& max(const T& a, const T& b)
=> a, b 값을 비교하여 큰값을 return


풀이

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<string> strArr) {
    vector<int> len(31, 0);
    int answer = 0;
    
    for(int i = 0; i < strArr.size(); ++i) {
        len[strArr[i].size()]++;
        answer = max(answer, len[strArr[i].size()]);
    }
    return answer;
}
profile
Keep Recycling Your Dreams

0개의 댓글