어흥

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

알고리즘/프로그래머스

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

라이언납시오 2021. 5. 3. 18:07
728x90
반응형

문제 링크: programmers.co.kr/learn/courses/30/lessons/77484?language=cpp

 

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

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

programmers.co.kr

1. 주의할 점

- 1개 or 0개 번호 일치시 6등

 

2. 구현

- Number[] 배열을 통해 로또에서 불린 번호들을 True로 저장한다

- Match와 Zero 변수를 통해 6개의 번호중에서 당첨 번호와 같은 수, 0인 수를 구한다

- Ranking[] 배열을 통해 Ranking[Match+Zero]:최고 순위, Ranking[Match]: 최저 순위를 구한다

#include <string>
#include <vector>

using namespace std;
bool number[56]={false,};
int ranking[7]={6,6,5,4,3,2,1};

vector<int> solution(vector<int> lottos, vector<int> win_nums) {
    vector<int> answer;
    int match=0,zero=0;
    
    for(int i=0;i<win_nums.size();i++)
        number[win_nums[i]]=true;
    for(int i=0;i<lottos.size();i++){
        if(number[lottos[i]]) match++;
        else if(lottos[i]==0) zero++;
    }
    answer.push_back(ranking[match+zero]);
    answer.push_back(ranking[match]);
    return answer;
}
728x90
반응형
Comments