이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

코딩테스트

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

이쿠우우 2022. 3. 15. 20:14
반응형

 

 

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

 

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

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

programmers.co.kr

글쓴이의 답

개인적인 풀이 임으로

이것보다 더 좋은 알고리즘은 많음...

이렇게도 풀이하는구나.. 공유하기 위해 올림...

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> lottos, vector<int> win_nums) {
    vector<int> answer;
    
    int findNum =6;
    int zeroCount =0;
    for(int i =0; i < lottos.size(); i++){
        if (0 == lottos[i]){
            zeroCount++;
        }
        else if(win_nums.end() != find(win_nums.begin(), win_nums.end(), lottos[i])){
            findNum--;
        }
    }
    
    int lowestNum = findNum+1;
    if (6 < lowestNum){
        lowestNum = 6;
    }
    int bestNum =lowestNum-zeroCount;
    if (0 >= bestNum){
        bestNum = 1;
    }    
    
    answer.push_back(bestNum);
    answer.push_back(lowestNum);
    
    return answer;
}




반응형