on
[level2] 프로그래머스 - 튜플(JAVA)
[level2] 프로그래머스 - 튜플(JAVA)
728x90
[ 풀이 방법 ]
1. 각 숫자가 나온 횟수를 HashMap에 저장
예제 2번
2. 횟수(value)를 기준으로 키를 내림차순 정렬
예제 2번
3. List(keySet)를 int배열(answer)로 바꿔서 리턴!
[ 전체 코드 ]
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.StringTokenizer; class Solution { public static int[] solution(String s) { // 숫자만 자르기 StringTokenizer st = new StringTokenizer(s, "},{"); // 숫자가 나온 횟수 세기 HashMap num = new HashMap(); while (st.hasMoreTokens()) { int n = Integer.parseInt(st.nextToken()); num.put(n, num.containsKey(n) ? num.get(n) + 1 : 1); } // 횟수기준 내림차순 정렬 List keySet = new ArrayList(num.keySet()); Collections.sort(keySet, (v1, v2) -> (num.get(v2) - num.get(v1))); int[] answer = new int[keySet.size()]; for (int i = 0; i < keySet.size(); i++) answer[i] = keySet.get(i); return answer; } }
from http://jisunshine.tistory.com/151 by ccl(A) rewrite - 2021-09-10 03:01:35