# 본인 코드
#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;
}
- for문 안에
cnt
인덱싱 후 값 증가 로직과 입력 로직을 함께 넣도록 개선되었다. - 최종 string 변수안에 한개씩 문자를 더해준 뒤 size를 통해 분기처리를 하도록 개선되었다.