https://school.programmers.co.kr/learn/courses/30/lessons/42579?language=cpp
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#include <string>
#include <vector>
#include <unordered_map>
#include <algorithm>
#include <iostream>
using namespace std;
bool cmp(const pair<string, int>& a, const pair<string, int>& b)
{
return a.first > b.first;
}
bool cmp2(const tuple <int, int>& a, const tuple <int, int>& b)
{
return get<1>(a) > get<1>(b);
}
vector<int> solution(vector<string> genres, vector<int> plays) {
vector<int> answer;
unordered_map<string, int> firstmap;
unordered_map<string, vector<tuple <int, int>>> secondmap;
for (int i = 0; i < genres.size(); i++)
{
firstmap[genres[i]] += plays[i];
secondmap[genres[i]].push_back(make_tuple(i, plays[i]));
}
vector<pair<string, int>> sortgenres(firstmap.begin(), firstmap.end());
sort(sortgenres.begin(), sortgenres.end(), cmp);
for (auto i : sortgenres)
{
sort(secondmap[i.first].begin(), secondmap[i.first].end(), cmp2);
for (int j = 0; j < 2; j++)
{
answer.push_back(get<0>(secondmap[i.first][j]));
if (secondmap.size() < 2)
{
break;
}
}
}
return answer;
}
TC는 맞는데 왜 제출하면 틀린지 솔직히 모르겠다.
시간이 빠듯해서 코테 시험을 본 이후 다시 살펴볼 예정이다.
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
Lv2.(깊이/너비 우선 탐색) 게임 맵 최단거리 - C++ (0) | 2023.05.06 |
---|---|
Lv1.(완전탐색) 모의고사 - Python,C++ (0) | 2023.05.05 |
Lv2.(해시) 의상 - C++ (0) | 2023.05.05 |
Lv2.(해시) 전화번호 목록 - C++ (0) | 2023.05.05 |
Lv1.(해시) 완주하지 못한 선수 - C++ (0) | 2023.05.05 |