티스토리 뷰
PriorityQueue는 String이든 int든 특별히 compare를 하지 않으면 작은 숫자부터 poll을 해서 없에줄수 있다. 이를 응용한 방법.
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 | String number = "4177252841"; int k = 4; String answer = ""; Queue<String> q = new PriorityQueue<>(); ArrayList<String> alist = new ArrayList<>(); //Queue translate for (int i = 0; i < number.length(); i++) { q.offer(number.substring(i, i + 1)); alist.add(number.substring(i, i + 1)); } System.out.println(q); //작은수 빼주기 int count = 0; while (!q.isEmpty()){ String temp = q.poll(); for (int i = 0; i < alist.size(); i++) { if (count == k) break; System.out.println(temp +" / " + count +" / " + alist.get(i)); if (temp.equals(alist.get(i))) { alist.remove(i); count++; } } } System.out.println(alist); | cs |
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[자바] 프로그래머스 -최댓값과 최솟값 (0) | 2019.02.20 |
---|---|
프로그래머스 - JadenCase 문자열 만들기 (0) | 2019.02.20 |
[자바] 프로그래머스 - 이상한 문자 만들기 (0) | 2019.02.18 |
[자바] 프로그래머스 - 문자열 내 마음대로 정렬하기 (0) | 2019.02.18 |
[자바] 프로그래머스 = 소수찾기 (0) | 2019.02.18 |