제한사항
- lottos는 길이 6인 정수 배열입니다.
- lottos의 모든 원소는 0 이상 45 이하인 정수입니다.
- 0은 알아볼 수 없는 숫자를 의미합니다.
- 0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다.
- lottos의 원소들은 정렬되어 있지 않을 수도 있습니다.
- win_nums은 길이 6인 정수 배열입니다.
- win_nums의 모든 원소는 1 이상 45 이하인 정수입니다.
- win_nums에는 같은 숫자가 2개 이상 담겨있지 않습니다.
- win_nums의 원소들은 정렬되어 있지 않을 수도 있습니다.
풀이방법 1
1. 0의 개수와 번호가 일치하는 개수를 센다.
2. 최고 순위는 0이 모두 정답인 경우이므로 countAnswer + countZero이다.
3. countAnswer + countZero가 1이하라면 낙첨이므로 6을 push_back하고 2이상이라면 7 - countAnswer + countZero를 push_back 한다.
4. 최저 순위는 0이 모두 정답이 아닌 경우이므로 countAnswer이다.
5. 마찬가지로 countAnswer로 위의 3번을 수행한다.
6. answer 리턴
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> lottos, vector<int> win_nums) {
vector<int> answer;
int countZero = 0;
int countAnswer = 0;
for(int i = 0; i < 6; i++){
if (lottos[i] == 0) {
countZero++;
} else {
for(int j = 0; j < 6; j++)
if(lottos[i] == win_nums[j])
countAnswer++;
}
}
if(countAnswer + countZero < 2)
answer.push_back(6);
else
answer.push_back(7 - (countAnswer + countZero));
if(countAnswer< 2)
answer.push_back(6);
else
answer.push_back(7 - countAnswer);
return answer;
}
풀이방법 2
1. 0의 개수와 번호가 일치하는 개수를 센다.
2. 최고 순위는 0이 모두 정답인 경우이므로 countAnswer + countZero이고 최저 순위는 0이 모두 정답이 아닌 경우이므로 countAnswer이다.
3. map 자료구조를 이용해 각 값에 따른 순위를 매칭시켜준다.
4. answer 리턴
#include <string>
#include <vector>
#include <map>
using namespace std;
vector<int> solution(vector<int> lottos, vector<int> win_nums) {
vector<int> answer;
int countZero = 0;
int countAnswer = 0;
for(int i = 0; i < 6; i++){
if (lottos[i] == 0) {
countZero++;
} else {
for(int j = 0; j < 6; j++)
if(lottos[i] == win_nums[j])
countAnswer++;
}
}
map<int,int> result_match;
result_match[0] = 6;
result_match[1] = 6;
result_match[2] = 5;
result_match[3] = 4;
result_match[4] = 3;
result_match[5] = 2;
result_match[6] = 1;
answer.push_back(result_match[countAnswer + countZero]);
answer.push_back(result_match[countAnswer]);
return answer;
}
'프로그래머스 > 1레벨' 카테고리의 다른 글
햄버거 만들기/C++ (0) | 2022.12.30 |
---|---|
[1차] 다트게임/C++ (0) | 2022.12.30 |
[1차] 비밀지도/C++ (0) | 2022.12.29 |
과일 장수/C++ (0) | 2022.12.29 |
내적 (0) | 2022.12.29 |