-
[프로그래머스/Level 1] 로또의 최고 순위와 최저 순위 (C++)알고리즘 문제풀이/프로그래머스 2021. 4. 28. 17:50
programmers.co.kr/learn/courses/30/lessons/77484
처음에 map을 이용하는 줄 알고 해매느라 시간이 좀 오래걸린게 아쉬웠습니다. 풀이는 단순히 완전탐색을 통해 번호 같은 수 갯수를 찾고, lottos 배열의 값이 0인 갯수를 찾습니다. 최고 순위는 same(같은 갯수) + zero(0의 갯수), 최저 순위는 same(같은 갯수)가 됩니다.
#include <string> #include <vector> using namespace std; int getRank(int num) { if(num == 6) return 1; else if(num == 5) return 2; else if(num == 4) return 3; else if(num == 3) return 4; else if(num == 2) return 5; else return 6; } vector<int> solution(vector<int> lottos, vector<int> win_nums) { vector<int> answer; int same = 0, zero = 0; for(int i = 0; i < lottos.size(); i++) { if(lottos[i] == 0) zero++; for(int j = 0; j < win_nums.size(); j++) { if(lottos[i] == win_nums[j]) same++; } } int maxx = getRank(same + zero); int minn = getRank(same); answer.push_back(maxx); answer.push_back(minn); return answer; }
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Level 3] 길 찾기 게임 (C++) (0) 2021.05.07 [프로그래머스/Level 2] 행렬 테두리 회전하기 (C++) (0) 2021.04.29 [프로그래머스/Level 3] 합승 택시 요금 (C++) (0) 2021.04.22 [프로그래머스/Level 2] 괄호 회전하기 (C++) (0) 2021.04.16 [프로그래머스/Level 1] 음양 더하기 (C++) (0) 2021.04.16