C++/programmers 코딩테스트(level 1) C++

[C/C++] programmers Level 1 로또의 최고 순위와 최저 순위

CE : 하랑 2023. 10. 18. 22:09

 

 

 

 

코드

 

#include <vector>

using namespace std;

int ranking(int count) { // 일치하는 번호 개수 별 순위 배정
    switch (count) {
    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;
    vector<int> num(46,0); // 0 ~ 46 범위 0으로 채움 
    int count=0;
    
    for(int i=0;i<lottos.size();i++){
        num[lottos[i]]++; // lottos -> i번째 번호 값 증가
        num[win_nums[i]]++; // win_nums -> i번째 번호 값 증가
    }
    
    for(int i=1;i<46;i++){ 
        if(num[i]==2){ // 비교를 했을 때 num[i]값이 2이면 맞춘 경우
            count++;
        }
    }
    
    answer.push_back(ranking(count+num[0])); // num[0]은 0의 개수 // 최고 순위는 맞춘 개수 + 0의 개수
    answer.push_back(ranking(count)); // 최저 순위 -> 맞춘 개수
    
    return answer;
}