# 본인 코드

#include <bits/stdc++.h>
using namespace std;
int N, cnt[26];
int checked;
string str[150];
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> N;
    for (int i = 0; i < N; i++){
        cin >> str[i];
    }

    for (int i = 0; i < N; i++){
        cnt[str[i][0] - 'a']++;
    }

    for (int i = 0; i < 26; i++){
        if (cnt[i] >= 5)
        {
            cout << (char)(i + 'a') << "";
            checked = 1;
        }
    }
    if(checked == 0){
        cout << "PREDAJA"
             << "\n";
        return 0;
    }

    cout << "\n";

    return 0;
}

아스키코드와 갯수 배열을 사용하여 풀이했다.

# 개선 코드

#include <bits/stdc++.h>
using namespace std;
int N, cnt[26];
string s, ret;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> N;
    for (int i = 0; i < N; i++){
        cin >> s;
        cnt[s[0] - 'a']++;
    }
    for (int i = 0; i < 26; i++){
        if(cnt[i] >= 5){
            ret += (i + 'a');
        }
    }

    if(ret.size()){
        cout << ret << "\n";
    }else{
        cout << "PREDAJA"
             << "\n";
    }

    return 0;
}
  1. for문 안에 cnt 인덱싱 후 값 증가 로직과 입력 로직을 함께 넣도록 개선되었다.
  2. 최종 string 변수안에 한개씩 문자를 더해준 뒤 size를 통해 분기처리를 하도록 개선되었다.