반응형
<문제 소개>
<소스 코드>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<string> strArr)
{
int answer = 0;
vector<int> count(31);
for(int i = 0; i < strArr.size(); i++)
{
string curStr = strArr[i];
count[curStr.size()]++;
}
sort(count.rbegin(), count.rend());
answer = count[0];
return answer;
}
<풀이과정>
1. 각 원소의 길이별 갯수를 담아놓을 벡터 count를 선언.
2. 원소의 최대 길이는 30이므로 벡터의 인덱스가 0부터 30까지 있어야 하기에 count의 크기는 31로 초기화
3. 주어진 문자배열 strArr를 반복하며 각 원소에 접근
4. count에서 해당 원소의 크기에 해당되는 인덱스의 값을 증가시켜 원소의 길이별 갯수를 카운트 함
5. 원소의 길이별 갯수를 모두 카운트한 뒤, count 벡터를 내림차순으로 정렬하여 가장 큰 값이 가장 앞에 오도록 함.
6. answer에 가장 큰 값인 0번째 인덱스의 값을 담고 리턴해줌.
<코멘트>
벡터 크기 정의할 때 인덱스는 항상 0부터 시작한다는 점 주의!
<제출결과>