N

(프로그래머스 c++)로또의 최고 순위와 최저 순위 본문

프로그래머스 알고리즘/1단계

(프로그래머스 c++)로또의 최고 순위와 최저 순위

naeunchan 2021. 5. 6. 10:50
728x90
반응형

programmers.co.kr/learn/courses/30/lessons/77484?language=cpp

 

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

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

programmers.co.kr

 

 

 

#include <string>
#include <vector>
#include <iostream>

using namespace std;

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

vector<int> solution(vector<int> lottos, vector<int> win_nums) {
    vector<int> answer;
    vector<bool> check(46, false);
    int zero_count = 0;
    int correct = 0;
    int sum = 0;
    
    for(int i = 0; i < 6; i++){
        check[win_nums[i]] = true;
    }
    
    for(int i = 0; i < 6; i++){
        if(check[lottos[i]]){
            correct++;
        }
        else if(lottos[i] == 0){
            zero_count++;
        }
    }
    
    sum = zero_count + correct;
    
    answer.push_back(win(sum));
    answer.push_back(win(correct)); 
    
    return answer;
}
728x90
반응형