문제
https://school.programmers.co.kr/learn/courses/30/lessons/77484#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
로또의 최고 순위와 최저 순위를 찾는 문제였다.
문제풀이
lottos와 win_nums를 정렬하고 진행했다. lottos 값이 0일 경우에는 jocker 값을 증가하고 나머지 경우에 대해서는 win_nums와 같은지 투포인터를 이용해 풀었다. maxRank와 minRank를 if문으로 일일이 비교하기 싫어서 rank 배열을 만들고 for문을돌려서 결정했다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> lottos, vector<int> win_nums) {
vector<int> answer;
int jocker=0;
int correct = 0;
int minRank=6, maxRank=6;
int rank[6] = {-1,6,5,4,3,2};
int i;
sort(lottos.begin(), lottos.end());
sort(win_nums.begin(), win_nums.end());
int j=0;
for(i=0;i<6;i++){
if(j>5) break;
if(lottos[i] == 0){
jocker++;
}
else if(lottos[i] == win_nums[j]){
correct++;
j++;
continue;
}
else if(lottos[i] < win_nums[j]){
continue;
}
else{
j++;
i--;
continue;
}
}
for(i=1;i<=5;i++){
if(correct+jocker == rank[i]){
maxRank = i;
}
if(correct == rank[i]){
minRank = i;
}
}
answer.push_back(maxRank);
answer.push_back(minRank);
return answer;
}
문제
https://school.programmers.co.kr/learn/courses/30/lessons/77484#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
로또의 최고 순위와 최저 순위를 찾는 문제였다.
문제풀이
lottos와 win_nums를 정렬하고 진행했다. lottos 값이 0일 경우에는 jocker 값을 증가하고 나머지 경우에 대해서는 win_nums와 같은지 투포인터를 이용해 풀었다. maxRank와 minRank를 if문으로 일일이 비교하기 싫어서 rank 배열을 만들고 for문을돌려서 결정했다.
#include <string> #include <vector> #include <algorithm> using namespace std; vector<int> solution(vector<int> lottos, vector<int> win_nums) { vector<int> answer; int jocker=0; int correct = 0; int minRank=6, maxRank=6; int rank[6] = {-1,6,5,4,3,2}; int i; sort(lottos.begin(), lottos.end()); sort(win_nums.begin(), win_nums.end()); int j=0; for(i=0;i<6;i++){ if(j>5) break; if(lottos[i] == 0){ jocker++; } else if(lottos[i] == win_nums[j]){ correct++; j++; continue; } else if(lottos[i] < win_nums[j]){ continue; } else{ j++; i--; continue; } } for(i=1;i<=5;i++){ if(correct+jocker == rank[i]){ maxRank = i; } if(correct == rank[i]){ minRank = i; } } answer.push_back(maxRank); answer.push_back(minRank); return answer; }