문제
문제풀이
String 문자로 주어진 값을 하나씩 카운팅하여서 빈도수가 높은 순으로 다시 정렬을 하여 int[] 값으로 반환하면 되는 문제이다.
나의 답안
public static int[] solution(String s) {
Map<String, Integer> map = new HashMap<>();
String[] split = s.split("[},{]");
for (String str : split) {
if ("".equals(str)) continue;
map.put(str, map.getOrDefault(str, 0) + 1);
}
ArrayList<String> list = new ArrayList<>(map.keySet());
list.sort(((o1, o2) -> map.get(o2) - map.get(o1)));
return list.stream().mapToInt(i -> Integer.parseInt(i)).toArray();
}
'Programmers 문제풀이 > Lv.2' 카테고리의 다른 글
연속 부분 수열 합의 개수 (0) | 2023.04.03 |
---|---|
n^2 배열 자르기 (0) | 2023.04.02 |
행렬의 곱셈 (0) | 2023.04.02 |
[1차] 캐시 (0) | 2023.04.01 |
귤 고르기 (0) | 2023.04.01 |