๊ธฐ๋ก๋ฐฉ

Lv.1 : ๊ณผ์ผ ์žฅ์ˆ˜ ๋ณธ๋ฌธ

CodingTest/Java

Lv.1 : ๊ณผ์ผ ์žฅ์ˆ˜

Soom_1n 2023. 4. 12. 16:27

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

 

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

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

programmers.co.kr



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ์ž…๋ ฅ๋œ ์ ์ˆ˜์˜ ์‚ฌ๊ณผ๋“ค๋กœ ํ•œ ์ƒ์ž์— m๊ฐœ์”ฉ ๋‹ด์•˜์„๋•Œ ์ตœ๋Œ€ ์ด์ต์„ ๊ตฌํ•œ๋‹ค.
  • 2๊ฐ€์ง€ ํ’€์ด๋ฅผ ์ƒ๊ฐํ–ˆ๋‹ค.
    1. ์‚ฌ๊ณผ ์ ์ˆ˜๋ฅผ ์ •๋ ฌํ›„ ์ธ๋ฑ์Šค๋ฅผ m๊ฐœ์”ฉ ์ด๋™ํ•ด์„œ ๋ˆ„์ ํ•œ๋‹ค.
    2. ์‚ฌ๊ณผ ์ ์ˆ˜๋ฅผ ๋ฐฐ์—ด์— ์นด์šดํŠธ ํ›„ m๊ฐœ์”ฉ ์นด์šดํŠธํ•ด์„œ ๋ˆ„์ ํ•œ๋‹ค.
  • ์‚ฌ๊ณผ ์ ์ˆ˜์˜ ๊ธธ์ด๊ฐ€ 100๋งŒ๊นŒ์ง€ ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ํ„ฐ์ง€์ง„ ์•Š์ง€๋งŒ, ์ •๋ ฌ์—์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๋” ์ปค์งˆ ๊ฒƒ ๊ฐ™์•„ 2๋ฒˆ์„ ์„ ํƒํ–ˆ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import java.util.Arrays;

class Solution {
    public int solution(int k, int m, int[] score) {
        int answer = 0;

        int[] points = new int[k+1];
        for(int i : score) 
            points[i]++;

        int count = 0;
        while(k > 0) {
            if(points[k] > 0){
                points[k]--;
                if(++count == m) {
                    count = 0;
                    answer += k*m;
                }
            }else {
                k--;
            }
        }

        return answer;
    }
}   

// import java.util.Arrays;

// 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;
//     }
// }

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • score ๋ฐฐ์—ด์—์„œ ๊ฐ ์ ์ˆ˜๋ฅผ points ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋กœ ์นด์šดํŠธํ•ด ์ €์žฅํ•œ๋‹ค.
  • points ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ 1๊นŒ์ง€ m๊ฐœ์”ฉ ์นด์šดํŠธํ•˜๋ฉฐ answer์— ๋ˆ„์ ํ•œ๋‹ค.
  • ์•„๋ž˜ ์ฃผ์„์€ sort์ฝ”๋“œ์ด๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • sortํ’€์ด๊ฐ€ ์ฝ”๋“œ๋Š” ๋” ์งง๊ณ  ๊ฐ„๋‹จํ•˜์ง€๋งŒ, ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ์ปค์ง€๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์™ผ์ชฝ์ด ์œ„ ์ฝ”๋“œ, ์˜ค๋ฅธ์ชฝ์ด ์ •๋ ฌ ํ’€์ด ๊ฒฐ๊ณผ

728x90