ALGORITHM/PROGRAMMERS
[프로그래머스] 튜플 (2019 카카오 개발자 겨울 인턴십)
0298
2021. 3. 7. 22:40
programmers.co.kr/learn/courses/30/lessons/64065
코딩테스트 연습 - 튜플
"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]
programmers.co.kr
2021-03-07
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
32
33
34
35
|
import java.util.*;
import java.util.Map.Entry;
public class Solution64065 {
public static int[] solution(String s) {
Map<String, Integer> map = new HashMap<>(); // 나온 숫자들 카운트 저장하는 map
s = s.replace("{", "").replace("}", ""); // '{' 와 '}' 제거
String[] tmp = s.split(",");
for (String p : tmp) {
if (map.containsKey(p)) map.put(p, map.get(p) + 1);
else map.put(p, 1);
}
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet()); // 정렬
Collections.sort(list, new Comparator<>() {
@Override
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
int[] answer = new int[Collections.max(map.values())];
int idx = 0;
for(Entry<String, Integer> m: list) {
answer[idx++] = Integer.parseInt(m.getKey());
}
return answer;
}
public static void main(String[] args) {
String s = "{{2},{2,1},{2,1,3},{2,1,3,4}}";
// String s = "{{123}}";
System.out.println(Arrays.toString(solution(s)));
}
}
|
cs |
#문제풀이
나온 숫자들의 개수를 카운팅 해준 후 큰 수 부터 차례대로 출력하면 된다.