본문 바로가기
코딩테스트 준비/프로그래머스

[프로그래머스][C++][0단계] 문자열 묶기

by 스테디코디스트 2023. 11. 13.
반응형

<문제 소개>


<소스 코드>

#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부터 시작한다는 점 주의!


<제출결과>