사용 알고리즘: 자료구조-큐?맵?
사용 언어: java
import java.util.*;
class Solution {
Map<Integer, Integer> map = new HashMap<>();
public int[] solution(String s) {
//구분자 이거 무야
String[] s_arr = s.split("[,\\{\\}]+");
for(String num : s_arr) {
if(num.equals("")) continue;
int n = Integer.parseInt(num);
map.put(n, map.getOrDefault(n, 0) + 1);
}
//
int[] answer = new int[map.size()];
Queue<int[]> pq = new PriorityQueue<>((a,b) -> b[1] - a[1]);
for(int key : map.keySet()) {
pq.add(new int[] {key, map.get(key)});
}
int idx = 0;
while(!pq.isEmpty()) {
answer[idx++] = pq.poll()[0];
}
return answer;
}
}
문제가 잘 이해가 안 갔는데..
답으로 리턴될 예상 튜플에서
0번째 원소값은 모든 부분집합에 포함된다.
1번째 원소값은 사이즈가 2 이상인 모든 부분집합에 포함된다.
2번째 원소값은 사이즈가 3 이상인 ~
이런 식으로 보자면,
모든 원소값의 개수를 구해서, 가장 많이 있는 원소값부터 튜플의 앞쪽 원소가 된다.
p.s
구분자 여러 개 쓰는 건 참 익숙해지지 않는군...
코딩 테스트에서 구분자를 여러 개 쓰는 문제는 본 적 없는 거 같긴 하지만...