Algorithm/Programmers

[Algorithm/Programmers] ๊ณผ์ผ ์žฅ์ˆ˜ - 135808 (L1/JAVA)

dpdms2148 2023. 6. 17. 23:51
728x90

๐Ÿ“‘๋ฌธ์ œ๋งํฌ

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

๐Ÿ’ป์ฝ”๋“œ

import java.util.Arrays;
import java.util.Collections;

class Solution {
    public int solution(int k, int m, int[] score) {
        int answer = 0;
        // ๋ฐฉ๋ฒ•1. ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
        // primitive Type์„ Wrapperํด๋ž˜์Šค๋กœ ๋ฐ•์‹ฑ
        Integer[] tmp = Arrays.stream(score).boxed().toArray(Integer[]::new);
        Arrays.sort(tmp,Collections.reverseOrder());

        for(int i = 0; i < tmp.length; i++){
            if((i + 1) % m == 0) answer += tmp[i] * m;
        }

        // ๋ฐฉ๋ฒ•2. ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
        Arrays.sort(score);

        for(int i = score.length - 1; i >= 0; i--) {
            if((score.length - i) % m == 0) answer += score[i] * m;
        }

        return answer;
    }
}

โณํšŒ๊ณ 

  • ์˜ค๋ฆ„์ฐจ์ˆœ์„ ์ •๋ ฌํ•  ๋•Œ๋Š” ๊ทธ๋ƒฅ Arrays.sort() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•  ๋•Œ๋Š” Collections.reverseOrder()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”๋ฐ ์ด๋•Œ๋Š” Wrapperํด๋ž˜์Šค๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ด ๋ฌธ์ œ์—์„œ๋Š” ๋ฐฉ๋ฒ• 2๋กœ ํ’€์ดํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋นจ๋ž๋‹ค.
728x90