728x90
반응형
문제 : 로또의 최고 순위와 최저 순위
풀이 방법
for문을 돌려서 lottos와 win_nums에 동일한 숫자가 있거나 lotts에 0이 있으면 미리 만들어 놓은 배열에 추가한다.
최고 순위는 배열의 크기 그 자체이고 최저 순위는 배열 요소에서 0을 제외한 나머지 크기이다.
count_if()를 이용해서 0을 제외한 나머지 크기를 구하고 스위치문으로 등수를 구했다.
소스 코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> lottos, vector<int> win_nums) {
vector<int> answer;
vector<int> same_num;
for(int & i : lottos) {
for(int & u : win_nums) {
if(i == u || i == 0) {
same_num.push_back(i);
break;
}
}
}
answer.push_back(same_num.size());
answer.push_back(count_if(same_num.begin(), same_num.end(), [](int e){return e != 0;}));
for(int i=0; i<2; i++) {
switch(answer[i]) {
case 6:
answer[i] = 1;
break;
case 5:
answer[i] = 2;
break;
case 4:
answer[i] = 3;
break;
case 3:
answer[i] = 4;
break;
case 2:
answer[i] = 5;
break;
default:
answer[i] = 6;
break;
}
}
return answer;
}
728x90
반응형
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 1, C++] 실패율 (0) | 2022.07.07 |
---|---|
[프로그래머스 Level 1, C++] [1차] 다트 게임 (0) | 2022.07.06 |
[프로그래머스 Level 1, C++] [1차] 비밀지도 (0) | 2022.07.05 |
[프로그래머스 Level 1, C++] 내적 (0) | 2022.07.05 |
[프로그래머스 Level 1, C++] 같은 숫자는 싫어 (0) | 2022.07.05 |