티스토리 뷰

반응형

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

 

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

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

programmers.co.kr


⊙ 문제

⊙ 제한사항

⊙ 입출력 예

⊙ 입출력 예 설명


 

⊙ 문제 접근 과정

 

0의 개수와 로또 당첨 번호의 개수를 먼저 세준다.

 

그다음 결괏값에 0과 당첨 번호의 카운트를 더하거나 빼주어 push 하면 된다.

 

예외는 zero가 6일 때만 따로 처리해주었다.


 

⊙ 문제 풀이

 

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> lottos, vector<int> win_nums) {
    vector<int> answer;
    int zero_count = 0;
    int win_count = 0;
    for(int i=0;i<lottos.size();i++)
        if(lottos[i] == 0) zero_count++; // 0이 몇개인가!
    //같은 숫자 체킹
    for(int i=0;i<win_nums.size();i++) 
        for(int j=0;j<win_nums.size();j++) 
            if(lottos[i] == win_nums[j]) win_count++;
    //범위 안에 들기 위해 count up
    if(win_count == 0) {
        win_count++;
        if(zero_count==6) zero_count--; //예외
    }
    //결과 입력
    answer.push_back(7-(win_count+zero_count));
    answer.push_back(7-win_count);
    return answer;
}

⊙ 마무리

 

 

NONE

 

좋아요 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함