MapleStory Finger Point

๐Ÿƒ‍โ™€๏ธprogrammers/Java

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv.1 ๊ณผ์ผ์žฅ์ˆ˜

HYEJU01 2025. 4. 30. 03:45
๋ฌธ์ œ : 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;
    }
}