문제 출처:https://www.acmicpc.net/problem/1159
문제 분석
이 문제는 정렬을 한 후 제일 앞 글자만 따서 count해주면 되는 문제입니다. 코드는 다음과 같습니다:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std ;
int main(){
ios::sync_with_stdio(false) ;
cin.tie(NULL) ; cout.tie(NULL) ;
int N, cnt = 0 ;
char first = '0';
bool is_insert = false ;
vector<string> player ;
string answer = "", temp ;
cin >> N ;
for(int i = 0 ; i < N ; i++){
cin >> temp ;
player.push_back(temp) ;
}
sort(player.begin(), player.end()) ;
for(int i = 0 ; i < N ; i++){
if(first == player[i][0]){
cnt += 1 ;
if(!is_insert && 4 < cnt){
answer.push_back(first) ;
is_insert = true ;
}
}
else{
cnt = 1 ;
first = player[i][0] ;
is_insert = false ;
}
}
if(answer.size()==0)
cout << "PREDAJA" << endl ;
else
cout << answer << endl ;
return 0 ;
}
해당 문제는 Github에서도 보실 수 있습니다:
https://github.com/gurcks8989/CodingTest/blob/master/BackJoon/HPS/P1159_Basketball_Game.cpp
훈수 및 조언은 언제든 환영입니다.