자기개발/코딩테스트
C++(코딩테스트) - 로또의 최고 순위와 최저 순위
pi92
2021. 11. 12. 09:42
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> lottos, vector<int> win_nums) {
vector<int> answer;
sort(lottos.begin(), lottos.end());
sort(win_nums.begin(), win_nums.end());
int zero_cnt = 0;
int cnt = 0;
int min_rank = 0;
int max_rank = 0;
for (int i = 0; i < lottos.size(); i++)
{
if (lottos[i] == 0)
{
zero_cnt++;
continue;
}
for (int j = 0; j < win_nums.size(); j++)
{
if (lottos[i] < win_nums[j])
{
break;
}
else if (lottos[i] == win_nums[j])
{
cnt++;
win_nums.erase(win_nums.begin() + j);
break;
}
}
}
if (cnt < 2) min_rank = 6;
else min_rank = 7 - cnt;
if (cnt + zero_cnt < 2) max_rank = 6;
else max_rank = 7 - cnt - zero_cnt;
answer.push_back(max_rank);
answer.push_back(min_rank);
return answer;
}
sort사용으로 풀이를 해봤는데 많이 비효율적인것같다.