-
[Programmers][C++] 로또의 최고 순위와 최저 순위Algorithm/Programmers 2022. 3. 5. 14:56
문제 유형 : Implements
https://programmers.co.kr/learn/courses/30/lessons/77484
나의 풀이
쉬운 구현문제입니다. 우선 갖고 있는 로또번호 중 0의 갯수를 카운트하는 zero_cnt와 당첨 번호의 갯수를 카운트하는 cnt를 선언합니다. 그 후 0인 번호는 zero_cnt를 통해 하나씩 증가시키고, 당첨번호롸 갖고 있는 로또번호의 번호를 비교 후 같으면 cnt를 하나씩 증가시켜주면 됩니다.
마지막에 갯수에 따른 등수 체크를 해주면 되는데 1등은 6개, 2등은 5개 ... 이므로 6등 이외는 모두 등수 + 당첨 갯수는 7임을 알 수 있습니다. 따라서 cnt + zero_cnt와 cnt에 따라 최고 등수는 7 - (cnt + zero_cnt), 최저 등수는 7 - cnt가 되고, 만일 당첨 갯수가 2보다 작으면 무조건 6등이기에 6을 answer vector에 넣어주면 됩니다. :)
* C++ Code
#include <string> #include <vector> using namespace std; vector<int> solution(vector<int> lottos, vector<int> win_nums) { vector<int> answer; int cnt = 0, zero_cnt = 0; // 맞은 번호, 0의 갯수 for (auto num : lottos) { if (num == 0) { ++zero_cnt; continue; } for (auto win_num : win_nums) { if (num == win_num) ++cnt; } } //갯수에 따른 등수 체크 if (cnt + zero_cnt >= 2) answer.push_back(7 - (cnt + zero_cnt)); else answer.push_back(6); if (cnt >= 2) answer.push_back(7 - cnt); else answer.push_back(6); return answer; }
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers][C++] 카카오프렌즈 컬러링북 (0) 2022.03.08 [Programmers][C++][Java] 크레인 인형뽑기 게임 (0) 2022.03.05 [Programmers][C++] 신규 아이디 추천 (0) 2022.03.05