728x90
반응형
문제
https://programmers.co.kr/learn/courses/30/lessons/42579
풀이 원리
장르를 unordered_map으로 분리 후 장르별 데이터를 vector을 이용하여 value , index 쌍으로 관리하는 것이 핵심
보인은 아래 구조체를 map에 넣어 value, index로 관리
typedef struct info{
string name;
int count = 0;
std::vector<std::pair<int, int>> v;
} info;
알아야할 코딩 기술
1. unordered_map
hash 형태로 장르를 빠르게 보관하기위해서 사용합니다.
2. map의 기본 정렬
map의 원소들은 key 값을 기준으로 오름차순 정렬되어있다. 따라서 내림차순으로 정렬하고 싶다면 int 형 기준으로 map<int, int, greater> 를 사용해주면 된다.
// Type your code here, or load an example.
#include<map>
#include<iostream>
int main()
{
// 기본 : 오름 차순 정렬
//std::map<int , std::string> m;
// key_compare 를 사용하여 오름 차순 정렬
//std::map<int , std::string, std::less<int>> m;
// key_compare 를 사용하여 내림 차순 정렬
std::map<int , std::string, std::greater<int>> m;
m.insert(std::make_pair(3,"1"));
m.insert(std::make_pair(4,"2"));
m.insert(std::make_pair(1,"3"));
m.insert(std::make_pair(2,"4"));
for (const auto item : m) {
std::cout << item.first << " : " << item.second << std::endl;
}
}
3. map을 value 기준으로 sorting 하는 방법
map을 vector에 넣고 vector를 소팅 한다.
map<char, int> m;
vector<pair<char, int>> v(m.begin(), m.end());
sort(v.begin(), v.end(), comp);
값 비교를 위한 사용자 코드
static bool comp(pair<char, int>& a, pair<char, int>& b){
return a.second < b.second;
}
728x90
반응형
'프로그래밍 > 코테' 카테고리의 다른 글
coding test cheat sheet (0) | 2022.08.17 |
---|---|
[프로그래머스] 프린터 Lv. 2 (0) | 2022.07.18 |
[프로그래머스] 기능개발 Lv. 2 (0) | 2022.07.03 |
[프로그래머스] 위장 (해시 Lv. 2) (0) | 2022.06.29 |
[해쉬1]-완주하지 못한 선수 (0) | 2021.04.25 |