[C++] 프로그래머스 문자열 묶기
문제설명
문자열 배열 strArr이 주어집니다.
strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때
가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.
제한사항
• 1 ≤ strArr의 길이 ≤ 100,000
◦ 1 ≤ strArr의 원소의 길이 ≤ 30
◦ strArr의 원소들은 알파벳 소문자로 이루어진 문자열입니다.
입출력 예
strArr | result |
---|---|
[“a”,”bc”,”d”,”efg”,”hi”] | 2 |
풀이
strArr 배열에서 문자열의 길이가 같은 문자열들끼리 그룹으로 묶고, 가장 개수가 많은 그룹의 크기를 returng하는 구현문제 입니다.
strArr의 최대 원소의 길이가 30이므로 개수를 세는 cnt 배열을 선언하여 개수를 파악하는 로직을 구현했습니다.
#include <string>
#include <vector>
#include <algorithm>
#include <memory.h>
using namespace std;
int solution(vector<string> strArr) {
int answer = 0;
int cnt[31];
memset(cnt, 0, sizeof(cnt));
for(int i = 0; i < strArr.size(); i++)
{
cnt[strArr[i].size()]++;
}
answer = *max_element(cnt, cnt+31);
return answer;
}
결과
Leave a comment