Recent Posts
Notice
No Rules Rules
모의고사 (feat. 프로그래머스, 42840번) 본문
728x90
반응형
모의고사
https://programmers.co.kr/learn/courses/30/lessons/42840
반응형
// woohyeon.kim
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#define _countof(a) (sizeof(a) / sizeof(a[0]))
using namespace std;
inline bool comp(const pair<int,int>& a, const pair<int,int>& b) {
if (a.second == b.second)
return a.first < b.first;
return a.second > b.second;
}
vector<int> solution(vector<int> answers) {
vector<int> answer;
int person1[] = {1,2,3,4,5};
int person2[] = {2,1,2,3,2,4,2,5};
int person3[] = {3,3,1,1,2,2,4,4,5,5};
auto N = answers.size();
vector<int> person1_answer, person2_answer, person3_answer;
while(person1_answer.size() < N)
person1_answer.insert(person1_answer.end(), person1, person1 + _countof(person1));
while(person2_answer.size() < N)
person2_answer.insert(person2_answer.end(), person2, person2 + _countof(person2));
while(person3_answer.size() < N)
person3_answer.insert(person3_answer.end(), person3, person3 + _countof(person3));
map<int, int> answer_count;
for(auto idx = 0; idx < N; ++idx)
{
if(answers[idx] == person1_answer[idx])
++answer_count[1];
if(answers[idx] == person2_answer[idx])
++answer_count[2];
if(answers[idx] == person3_answer[idx])
++answer_count[3];
}
vector<pair<int,int>> tmpl(answer_count.begin(), answer_count.end());
sort(tmpl.begin(), tmpl.end(), comp);
if(tmpl.size() == 1)
{
answer.push_back(tmpl[0].first);
}
else
{
answer.push_back(tmpl[0].first);
for(auto idx = 0; idx < (tmpl.size() - 1); ++idx)
{
if(tmpl[idx].second == tmpl[idx + 1].second)
answer.push_back(tmpl[idx + 1].first);
else
break;
}
}
return answer;
}
// *&)*@*
map의 value를 오름차순으로 sort했을때 1~3번에 해당되는 key를 answer에 삽입하였습니다.
혹시 5~12번까지 실패로 결과가 나온다면
아래의 값을 테스트케이스에 넣어보시고 확인해보시기 바랍니다.
[3, 3, 2, 1, 5] -> [3]
[5, 5, 4, 2, 3] -> [1,2,3]
728x90
반응형
'생활 > 코테' 카테고리의 다른 글
타겟 넘버 (feat. 프로그래머스, 43165번) (0) | 2022.07.23 |
---|---|
체육복 (feat. 프로그래머스, 42862번) (0) | 2022.07.23 |
소수 만들기 (feat. 프로그래머스, 12977번) (0) | 2022.07.23 |
더 맵게 (feat. 프로그래머스, 42626번) (0) | 2022.07.23 |
가장 큰 증가 부분 수열 (feat. 백준, 11055번) (0) | 2022.07.22 |
Comments