나의 풀이
import java.util.*;
class Solution {
public int solution(int k, int m, int[] score) {
int answer = 0;
//int[] -> Integer[]
Integer[] scoreArr = Arrays.stream(score).boxed().toArray(Integer[]::new);
//내림차순으로 정렬하는 경우 요소의 갯수가 m의 배수가 될 때
//해당 index에 해당하는 요소값은 '슬라이싱을 했을 때의 해당 배열의 "최하점수"가된다.'
Arrays.sort(scoreArr, Collections.reverseOrder());
//scoreArr[i]는 "최하 점수"를 의미한다.
for (int i = 0; i < scoreArr.length; i++) {
if ((i + 1) % m == 0) answer += scoreArr[i] * m;
}
return answer;
}
}
▶ 주석 참고
다른 사람의 풀이
public class Solution {
public int solution(int k, int m, int[] score) {
int answer = 0;
Arrays.sort(score);
for (int i = score.length-1; i >=0; i--) {
if ((score.length -i ) % m == 0) answer += score[i] * m;
}
return answer;
}
}
▶ 정수 배열을 내림차순으로 정렬하지 않고,
▶ 끝에서 앞쪽으로 접근한다. 내림차순으로 정렬한 경우 score.length -i 가 m의 배수가 될때의
▶ index에 해당하는 score[i]의 값이 "최하 점수"가 된다.
'프로그래머스(자바) > LV.1(자바)' 카테고리의 다른 글
키패드 누르기★★ (0) | 2022.12.20 |
---|---|
숫자 짝궁→char타입 - int타입, 내림차순 정렬시 0이 맨 앞에 오는 경우→ 모든 요소를 '0'으로 되어 있다 . (0) | 2022.12.20 |
완주하지 못한 선수→ getOrDefault() 각 요소 갯수 세기★★ (0) | 2022.12.19 |
다트 게임→ 마지막에서 값을 remove★ 하고 싶은 경우 + 마지막에서 두번 째에서 값을 remove★하고 싶은 경우+ map자료형 (0) | 2022.12.19 |
체육복→ 차집합을 구현하는 방법★★ (0) | 2022.12.19 |