티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/42579
#include <string>
#include <vector>
#include <map>
#include <utility>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
bool cmpM(const pair<int, string> &a, const pair<int, string> &b) {
return a.first > b.first;
}
bool cmpV(const pair<int, int> &a, const pair<int, int> &b) {
return a.first > b.first;
}
vector<pair<int, string>> mSort(map<string, int> &M) {
vector<pair<int, string>> V;
for (auto i : M)
V.push_back(make_pair(i.second, i.first));
sort(V.begin(), V.end(), greater<int>());
return V;
}
int main(void) {
vector<string> genres;
vector<int> plays;
map<string, int> M;
multimap<string, pair<int, int>> MM;
for (int i = 0; i < 5; i++) {
string str;
int x;
cin >> str >> x;
genres.push_back(str);
plays.push_back(x);
}
for (int i = 0; i < genres.size(); i++) {
M[genres[i]] += plays[i];
MM.insert(make_pair(genres[i], make_pair(plays[i], i)));
}
vector<pair<int, string>> V = mSort(M);
multimap<string, pair<int, int>>::iterator iter;
pair<multimap<string, pair<int, int>>::iterator, multimap<string, pair<int, int>>::iterator> iter_pair;
for (auto i : V) {
vector<pair<int, int>> lastV;
iter_pair = MM.equal_range(i.second);
for (iter = iter_pair.first; iter != iter_pair.second; ++iter) {
lastV.push_back(make_pair(iter->second.first, iter->second.second));
//cout<<iter->first<<' '<<iter->second.first<<' '<<iter->second.second<<endl;
}
if (iter_pair.second - iter_pair.first < 2) {
answer.push_back(lastV[0].second);
}
else {
sort(lastV.begin(), lastV.end(), cmpV);
for (int i = 0; i<2; i++)
answer.push_back(lastV[i].second);
}
}
return 0;
}
'Algorithm > 유형별 : Map' 카테고리의 다른 글
[C++] [Map] 프로그래머스 해시 : 위장 (0) | 2019.11.14 |
---|---|
[C++] [Map] 프로그래머스 해시 : 전화번호 목록 (0) | 2019.11.14 |
[C++] [Map] 프로그래머스 해시 : 완주하지 못한 선수 (0) | 2019.11.14 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- jdbc
- OOP
- Oracle
- 캡슐화
- 추상화
- view
- java 환경설정
- controller
- java
- 다형성
- INSERT
- 객체지향
- JDBC 프로그램 작성단계
- .
- ojdbc6.jar
- Delete
- 상속
- 객체
- select
- model
- Update
- JdbcTemplate
- MVC
- Scott/Tiger
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함