😭 열심히 알고리즘을 공부한 성과가 났다.
학과 알고리즘 대회에서 🥇1등!
호남권 알고리즘 대회에서 🥈2등!!
더 열심히하자 ㅎㅎ
0
은 어떤 수든 나올 수 있으므로 최고순위를 정할 때는 맞은 개수에 더해주고 최저순위를 정할 때는 더해주지 않으면 된다.check
함수를 사용해서 2n으로 끝내줬다. (물론 n이 6이라서 큰 의미는 없다)#include <string>
#include <vector>
using namespace std;
bool check[46];
int ranking(int correct)
{
switch (correct)
{
case 6:
return 1;
case 5:
return 2;
case 4:
return 3;
case 3:
return 4;
case 2:
return 5;
default:
return 6;
}
}
vector<int> solution(vector<int> lottos, vector<int> win_nums)
{
vector<int> answer;
int correct = 0;
int zero = 0;
for (int i = 0; i < win_nums.size(); i++)
check[win_nums[i]] = true;
for (int i = 0; i < lottos.size(); i++)
{
if (check[lottos[i]])
correct++;
else if (lottos[i] == 0)
zero++;
}
answer.push_back(ranking(correct + zero));
answer.push_back(ranking(correct));
return answer;
}