https://programmers.co.kr/learn/courses/30/lessons/77484
풀이
입력 값으로 1~45까지의 숫자와 알아볼수 없는 번호 0이 있음
결과 순위에 반영되는 변수로 0의 개수와, 맞춘 숫자의 개수를 파악해야함
- 최고 순위(0의 개수, 맞춘 숫자의 개수)
- 최대로 맞췄다는 가정이므로 0의 개수만큼 추가로 맞췄다고 가정
- 0의 개수 + 맞춘 숫자의 개수가 2미만이면 6등, 그 외의 경우에는 ( 7 - (0의 개수 + 맞춘 숫자의 개수) )등이 됨
- 최저 순위(맞춘 숫자의 개수)
- 최소로 맞췄다는 가정이므로 0으로 표기된것은 맞추지 못했다고 가정
- 맞춘 숫자의 개수가 2미만이면 6등, 그 외의 경우에는 (7 - 맞춘 숫자의 개수)등이 됨
#include <string>
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> lottos, vector<int> win_nums) {
vector<int> answer;
int undefined_cnt=0;
int same_cnt=0;
for(int i=0;i<6;i++){
if(lottos[i]==0){
undefined_cnt++;
continue;
}
for(int j=0;j<6;j++){
if(lottos[i]==win_nums[j]){
same_cnt++;
break;
}
}
}
//최대 순위
if(same_cnt+undefined_cnt<2){
answer.push_back(6);
}
else{
answer.push_back(7-(same_cnt+undefined_cnt));
}
//최소 순위
if(same_cnt<2)
answer.push_back(6);
else
answer.push_back(7-same_cnt);
return answer;
}
'알고리즘' 카테고리의 다른 글
Programmers - 모음사전(Python) (0) | 2021.09.29 |
---|---|
BOJ 3190 - 뱀(C++) (0) | 2021.09.29 |
Programmers - 최소직사각형(C++) (0) | 2021.09.29 |
Programmers - 퍼즐 조각 채우기(C++) (0) | 2021.09.24 |
BOJ 2467 - 용액(C++) (0) | 2021.09.15 |
댓글