๋ฌธ์ : Lv.1 ๊ณผ์ผ์ฅ์ https://school.programmers.co.kr/learn/courses/30/lessons/135808 ์ธ์ด : JAVA ์ฒด๊ฐ Level : โ โ โ Review: ํธํ๊ฒ ํ์ด๋ณด๋ ค๊ณ ์ปฌ๋ ์ ์ผ๋ก ์ ๋ ฌํด์ ํ์ด๋ดค๋๋ฐ, ์ญ๋ฃจํ ๋ฌธ์ผ๋ก ์ถฉ๋ถํ ๊น๋ํ๊ฒ ์งค ์ ์์์ ๊นจ๋ฌ์๋ค. ๋ฌด์์ ํธํ๋ ค๊ณ ์ปฌ๋ ์ ์ฌ์ฉํ๋๊ฒ ์๋ ํต์ฌ ๋ก์ง์ ์ ์ดํดํ๋๋กํ์ |
๐ก
import java.util.*;
import java.util.stream.*;
class Solution {
public int solution(int k, int m, int[] score) {
// stream ์ผ๋ก ๋ฐฐ์ด -> ๋ฆฌ์คํธ๋ก ๋ณํ -> ๋ด๋ฆผ์ฐจ์
List<Integer> score_list = Arrays.stream(score)
.boxed() // int → Integer
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
// ํ ์์ฑ
Queue<Integer> queue = new LinkedList<>();
score_list.forEach(queue::offer);
// ์ต๋ ๋ฐ๊ตฌ๋ ๊ฐ
int max_cnt = score.length / m ;
int cnt = 0;
int answer = 0;
while (true){
if(cnt == max_cnt) {
break;
}
for(int i = 1; i <= m ; i++){ // ์ต๋ ์ฌ๊ณผ ๊ฐฏ์๋งํผ ๊บผ๋ด๊ธฐ
if (i == m){ // ์ด๋ ๋ฐ๊ตฌ๋ ์์ ์ต์ ๊ฐ๋ง
answer += queue.poll() * m;
} else {
queue.poll();
}
}
cnt ++;
}
return answer;
}
}
๐ก ๋ค๋ฅธ ๋ฐฉ๋ฒ
1. ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
2. ๋ค์์๋ถํฐ 4๊ฐ์ฉ ๋์ด์ ์์ ํด์ค๋ค.
import java.util.*;
class Solution {
public int solution(int k, int m, int[] score) {
int answer = 0;
Arrays.sort(score);
for(int i = score.length; i >= m; i -= m){
answer += score[i - m] * m;
}
return answer;
}
}