반응형
https://school.programmers.co.kr/learn/courses/30/lessons/42579
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Review
개인적으로는 조금 귀찮은 문제였던.. 우선 HashMap으로 genres, plays를 매핑해주고, 각각 sort를 해서 정렬해줬다. 그리고 for문이 gen을 도는 동안 genres[i]가 같은 걸 만나면 count++ 해주고 list에 넣어서 get! 이전에 한 번 풀어봤던 문제여서 기억이 나서 비교적 쉽게 풀었는데 나중에는 이렇게 list로 바로 풀 수 있을지 모르겠다. 하하
Code
import java.util.*;
class Solution {
public int[] solution(String[] genres, int[] plays) {
int[] answer = {};
HashMap<String, Integer> map = new HashMap<>();
HashMap<Integer, Integer> map2 = new HashMap<>();
for (int i = 0; i < genres.length; i++) {
map.put(genres[i], map.getOrDefault(genres[i], 0) + plays[i]);
}
for (int i = 0; i < plays.length; i++) {
map2.put(i, plays[i]);
}
List<String> gen = new ArrayList<>(map.keySet());
gen.sort((g1, g2) -> map.get(g2).compareTo(map.get(g1)));
List<Integer> pl = new ArrayList<>(map2.keySet());
pl.sort((p1, p2) -> map2.get(p2).compareTo(map2.get(p1)));
List<Integer> list = new ArrayList<>();
for (String s : gen) {
int count = 1;
for (int i : pl) {
if (genres[i].equals(s) && count < 3) {
count++;
list.add(i);
}
}
}
answer = new int[list.size()];
for (int i = 0; i < answer.length; i++) {
answer[i] = list.get(i);
}
return answer;
}
}반응형
'Dev > Programmers' 카테고리의 다른 글
| [프로그래머스] 모의고사 (Java) (0) | 2024.12.24 |
|---|---|
| [프로그래머스] 최소직사각형 (Java) (0) | 2024.12.23 |
| [프로그래머스] 의상 (Java) (1) | 2024.12.20 |
| [프로그래머스] 전화번호 목록 (Java) (0) | 2024.12.20 |
| [프로그래머스] 완주하지 못한 선수 (Java) (2) | 2024.12.19 |