Dolphins의 HelloWorld

Programmers > 코딩테스트 연습 > 해시 > 베스트앨범 본문

Algorithm/Programmers 문제풀이

Programmers > 코딩테스트 연습 > 해시 > 베스트앨범

돌핀's 2018. 9. 13. 23:23

문제링크 : https://programmers.co.kr/learn/courses/30/lessons/42579




풀이



map함수를 이용해서 풀면 어려운 문제는 아니지만 요구조건과 처리해야할 사항들이 좀


있기 때문에 헷갈리지 않고 잘 정리해나가면서 푸는것이 필요한 문제이다.


이 문제를 푼 절차는 다음과 같다.



1. map함수를 통해 장르 이름을 key 재생 횟수를 value로 삼아서 장르당 총 재생횟수를 구한다.



2. 위의 map함수를 통해 가장 많이들은 장르, 두번째로 많이 들은 장르를 알아낸다.



3. 노래별 재생 횟수와 index를 함께 인자로 가지는 vector<pair<int,int>를 선언하고


가장 많이 들은 장르에 대해 인자들을 vector함수에 저장하고


두번째로 많이 들은 장르에 대해 따로 또 vector함수에 인자들을 저장한 다음


sort를 통해 재생횟수는 내림차순, index는 오름차순으로 정렬한다.



4. 조건중에서 장르에 속한 곡이 하나라면, 하나의 곡만 선택한다는 것에 유의하면서


원하는 답을 주어진 answer 벡터 함수에 집어넣는다.



코드는 아래와 같다.



Comments