๊ธฐ๋ก๋ฐฉ

Lv.2 : ๊ทค ๊ณ ๋ฅด๊ธฐ ๋ณธ๋ฌธ

CodingTest/Java

Lv.2 : ๊ทค ๊ณ ๋ฅด๊ธฐ

Soom_1n 2023. 9. 18. 13:33

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

 

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

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

programmers.co.kr



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

  • k๊ฐœ์˜ ๊ทค์„ ์„ ํƒํ•  ๋•Œ, ๊ทค์˜ ํฌ๊ธฐ ์ข…๋ฅ˜์˜ ์ตœ์†Œ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ ๋ฌธ์ œ ํ’€์ด ๐Ÿ”ธ

  • ๊ทค์˜ ํฌ๊ธฐ ์ข…๋ฅ˜์™€ ๊ฐ๊ฐ์˜ ๊ทค ๊ฐœ์ˆ˜๋ฅผ ์นด์šดํŠธํ•œ๋‹ค.
  • ๊ทธ๋ฆฌ๋””ํ•˜๊ฒŒ ์ ‘๊ทผํ•ด์„œ, ๊ทค ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์€ ์ข…๋ฅ˜๋ถ€ํ„ฐ k๊ฐœ๋ฅผ ๊ณ ๋ฅธ๋‹ค๋ฉด ์ตœ์†Œํ•œ์˜ ์ข…๋ฅ˜๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

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

import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.List;

class Solution {
    public int solution(int k, int[] tangerine) {
        Map<Integer, Integer> map = new HashMap<>();
        
        for(int i : tangerine) {
            if(map.containsKey(i)) {
                map.put(i, map.get(i) + 1);
            } else {
                map.put(i, 1);
            }
        }
        
        List<Integer> keySet = new ArrayList<>(map.keySet());

        // Value ๊ฐ’์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
        keySet.sort((o1, o2) -> map.get(o2).compareTo(map.get(o1)));

        int answer = 0;
        
        for (Integer key : keySet) {
            answer++;
            
            if(map.get(key) <= k) k -= map.get(key);
            else k = 0;
            
            if(k == 0)
                break;
        }
        
        return answer;
    }
}

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

  • ๊ทค ์ข…๋ฅ˜์™€ ๊ทธ ์ˆซ์ž๋ฅผ map์— ์ €์žฅํ•œ๋‹ค.
  • ๊ทค ๊ฐœ์ˆ˜๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•œ๋‹ค.
  • ๊ทค ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์€ ์ข…๋ฅ˜๋ถ€ํ„ฐ k๊ฐœ๋ฅผ ์„ธ๊ณ , ์„ ํƒํ•œ ๊ทค์˜ ์ข…๋ฅ˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์ •๋ ฌ๋ฌธ์„ ์ง์ ‘ ์ž‘์„ฑํ•ด ๋„ฃ๋Š” ๋ฐฉ๋ฒ•์ด ์˜ค๋žœ๋งŒ์ด๋ผ์„œ ํฌ์ŠคํŒ…์„ ์ฐพ์•„๋ณด์•˜๋‹ค.
    • List.sort()์•ˆ์— ์ง์ ‘ Comparator๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•ด์„œ ๋„ฃ๋Š”๋ฐฉ๋ฒ•๊ณผ ๋žŒ๋‹ค์‹์œผ๋กœ ๋„ฃ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์žŠ์ง€ ๋ง์ž.
  • ๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ดค๋Š”๋ฐ, ๋‹ค ๋น„์Šทํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

728x90