본문 바로가기

프로그래머스 풀이/Lv 1

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

728x90

예외처리를 잘 해줘야하는 문제.

어려운 문제는 아니지만 예외처리가 어렵다.

 

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> lottos, vector<int> win_nums) {
    vector<int> answer;    
    int numberArray[47] = {0,};
    
    for(int i = 0; i < 6; i++)
        numberArray[win_nums[i]]++;

    int win = 0;
    int zero = 0;
    int wrong = 0;
    
    for(int i = 0; i < 6; i++){
        if(numberArray[lottos[i]] != 0)
            win++;
        else
            wrong++;
        if(lottos[i] == 0)
            zero++;
   }
    
    
   
    if(wrong == 6){
        if(zero == 6)
            answer.push_back(1 + wrong - zero);
        else
            answer.push_back(wrong - zero);
        answer.push_back(wrong);
    }
    else{
        answer.push_back(1 + wrong - zero);
        answer.push_back(wrong + 1);
    }return answer;
}