Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Study

프로그래머스-로또의 최고 순위와 최저 순위 본문

알고리즘/C++ 문제풀이

프로그래머스-로또의 최고 순위와 최저 순위

^_^? 2021. 7. 6. 14:55
 

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호

programmers.co.kr

 

 

<풀이>

더보기

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int grade(int num){
        if(num == 6) {
           return 1;
            
        }else if(num == 5) {
            return 2;
            
        }else if(num == 4) {
            return 3;
            
        }else if(num == 3) {
            return 4;
            
        }else if(num == 2) {
            return 5;
            
        }else{
            return 6;
            
        }
        
}

vector<int> solution(vector<int> lottos, vector<int> win_nums) {
    vector<int> answer;
    vector<int>::iterator it;
    
    int unknown = 0;
    int eq = 0;

    
    
    for(int i=0; i<lottos.size(); i++){
        it = find(lottos.begin(), lottos.end(),win_nums[i]);
        if(it != lottos.end()){
            eq++;
                
        }  
    }
    
    for(int i=0; i<lottos.size(); i++){
        if(lottos[i] == 0){
                unknown++;
        }
        
    }
        
        
    if(unknown != 0){
        answer.push_back(grade(eq));
        answer.push_back(grade(eq+unknown));
        
        }else{
            answer.push_back(grade(eq));
            answer.push_back(grade(eq));
        }
    
    sort(answer.begin(), answer.end());
    
    return answer;
}