컴굥일지
[Programmers/프로그래머스 lv1][C++] 로또의 최고 순위와 최저 순위 본문
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/77484
문제 내용
로또 번호와 당첨 번호를 입력받아, 몇 등을 했는지를 파악하는 문제이다.
단, 일부 로또 번호가 지워져있기 때문에, 배열의 로또 최고 순위와 최저 순위를 담아서 return 하면 된다.
문제 풀이
몇 개가 일치하는지 파악한 후에, 최고 순위의 경우 지워진 번호가 모두 일치한다고 가정하고, 최저 순위의 경우 지워진 번호가 모두 불일치한다고 가정하면 된다.
일치하는 개수가 아닌 등수를 반환해야 하므로, 마지막에 처리가 필요하다.
코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int returnScore(int n){
if(n==0 || n==1) return 6;
else return 6-n+1;
}
vector<int> solution(vector<int> lottos, vector<int> win_nums) {
vector<int> answer(2,0);
for(int i=0;i<6;i++){
if(lottos[i]==0){
answer[0]++;
continue;
}
int num = count(win_nums.begin(),win_nums.end(), lottos[i]);
answer[0]+=num;
answer[1]+=num;
}
answer[0]=returnScore(answer[0]);
answer[1]=returnScore(answer[1]);
return answer;
}
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[Programmers/프로그래머스 lv2][C++] 더 맵게 (0) | 2023.09.07 |
---|---|
[BOJ/백준 1717][C++] 집합의 표현 (1) | 2023.09.06 |
[Programmers/프로그래머스 lv3][C++] 최고의 집합 (0) | 2023.08.26 |
[BOJ/백준 7662][C++] 이중 우선순위 큐 (0) | 2023.08.25 |
[Programmers/프로그래머스 lv2][C++] 전력망을 둘로 나누기 (0) | 2023.08.25 |
Comments