알고리즘/완전탐색

[프로그래머스/C++] 로또의 최고 순위와 최저 순위

수디sudy 2022. 2. 18. 17:10

문제 : https://programmers.co.kr/learn/courses/30/lessons/77484

 

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

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

programmers.co.kr

 

이번 문제도 레벨1인만큼 너무 간단합니다

lottos와 win_nums 를 대조해서 맞은 개수를 count 하고, lottos의 0 (안보이는숫자) 개수도 count 합니다.

최고순위 = 원래 맞은개수 + 0 개수(안보이는숫자 개수)

최저순위 = 원래 맞은개수

 

등수를 return 하기위해 switch 문을 사용해서 코드 길이는 길어용 :3

 

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> lottos, vector<int> win_nums) {
    vector<int> answer;
    int best;
    int worst;
    int match = 0;
    int zero = 0;
    
    for(int i=0; i<6; i++)
    {
        if(lottos[i] == 0)
            zero++;
    }
    
    for(int i=0; i<6; i++)
    {
        for(int j=0; j<6; j++)
        {
            if(lottos[i] == win_nums[j])
            {
                match++;
                break;
            }
        }
    }
    
    best = match+zero;
    worst = match;
    
    
    switch(best)
    {
        case 6:
            answer.push_back(1);
            break;
        case 5:
            answer.push_back(2);
            break;
        case 4:
            answer.push_back(3);
            break;
        case 3:
            answer.push_back(4);
            break;
        case 2:
            answer.push_back(5);
            break;
        default:
            answer.push_back(6);
            break;
    }
    
    switch(worst)
    {
        case 6:
            answer.push_back(1);
            break;
        case 5:
            answer.push_back(2);
            break;
        case 4:
            answer.push_back(3);
            break;
        case 3:
            answer.push_back(4);
            break;
        case 2:
            answer.push_back(5);
            break;
        default:
            answer.push_back(6);
            break;
    }
    
    return answer;
}

'알고리즘 > 완전탐색' 카테고리의 다른 글

[프로그래머스/C++] 카펫  (0) 2022.02.04
[프로그래머스/C++] 모의고사  (0) 2022.01.26