728x90
내 풀이
이번 건 좀 괜찮게 푼 것 같다!
iterator 와 find 함수를 사용해당첨번호와 같은 값을 내 로또번호에서 찾으면 worst와 best에 모두 더해주고,
내 로또번호에 0이 있으면 그 개수만큼 best에만 더해줬다.
일치하는 번호를 세는 데 사용했던 worst와 best 변수의 값은 switch를 이용해 순위로 재할당해줬고,
그 순위를 answer에 차례로 넣어줘서 반환했다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> lottos, vector<int> win_nums) {
vector<int> answer;
int worst = 0, best = 0;
for (int i = 0; i < win_nums.size(); i++) {
vector<int>::iterator f = find(lottos.begin(), lottos.end(), win_nums[i]);
if (f != lottos.end()) {
worst++;
best++;
}
if (lottos[i] == 0) best++;
}
switch (worst)
{
case 0: worst = 6;
break;
case 1: worst = 6;
break;
case 2: worst = 5;
break;
case 3: worst = 4;
break;
case 4: worst = 3;
break;
case 5: worst = 2;
break;
case 6: worst = 1;
break;
default:
break;
}
switch (best)
{
case 0: best = 6;
break;
case 1: best = 6;
break;
case 2: best = 5;
break;
case 3: best = 4;
break;
case 4: best = 3;
break;
case 5: best = 2;
break;
case 6: best = 1;
break;
default:
break;
}
answer.push_back(best);
answer.push_back(worst);
return answer;
}
'[C_C++]코딩테스트 연습 > [프로그래머스] level 1' 카테고리의 다른 글
[C++] 프로그래머스 - 숫자 문자열과 영단어 (0) | 2021.07.16 |
---|---|
[C++] 프로그래머스 - 약수의 개수와 덧셈 (0) | 2021.07.14 |
[C++] 프로그래머스 - 예산 (0) | 2021.07.13 |
[C++] 프로그래머스 - 소수 만들기 (0) | 2021.07.13 |
[C++] 프로그래머스 - 신규 아이디 추천 (0) | 2021.07.13 |