[HackerRank/C++] ACM ICPC Team
2023. 2. 7. 07:50ㆍ코딩테스트 해커랭크/Algorithms -Easy
topic은 string으로 각각 문제중 자신이 알고 있는 문제를 1로 표시하고 모르는 경우 0으로 표시하는 사람들이 있다
이 중 2명으로 팀을 꾸리고 가장 많은 문제를 알고 있는 팀이 만들어질때
해당 팀이 알고 있는 문제의 수와 그런 팀이 조합될 경우의 수를 return 한다
vector<int> acmTeam(vector<string> topic)
{
vector<int> result;
int max = 0;
int team = 0;
for (int i = 0; i < topic.size(); ++i)
{
for (int j = i + 1; j < topic.size(); ++j)
{
int tempMax = 0;
for (int k = 0; k < topic[i].length(); ++k)
if (topic[i][k] == '1' || topic[j][k] == '1')
++tempMax;
if (tempMax > max)
{
max = tempMax;
team = 1;
}
else if(tempMax == max)
++team;
}
}
result.push_back(max);
result.push_back(team);
return result;
}
반환할 result와 최대 문제수를 저장할 max, 가능한 조합수를 저장할 team 변수를 선언한다
반복문을 돌며 2명의 팀을 꾸릴때 가능한 모든 경우의 수를 체크한다
경우의 수를 체크하며 아는 문제 수의 최댓값이 갱신 될 경우 max에 저장하며 team의 수를 1로 초기화 한다
만약 현재 팀이 아는 문제수와 현재 갱신된 최대 문제수가 같다면 team을 증가시킨다
모든 반복이 끝나면 result에 max값과 team값을 push_back해 return 한다
'코딩테스트 해커랭크 > Algorithms -Easy' 카테고리의 다른 글
| [HackerRank/C++] Modified Kaprekar Numbers (0) | 2023.02.07 |
|---|---|
| [HackerRank/C++] Taum and B'day (0) | 2023.02.07 |
| [HackerRank/C++] Equalize the Array (0) | 2023.02.07 |
| [HackerRank/C++] Jumping on the Clouds (0) | 2023.02.07 |
| [HackerRank/C++] Repeated String (0) | 2023.02.07 |