๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด/-

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ „๊ตญ ๋Œ€ํšŒ ์„ ๋ฐœ ๊ณ ์‚ฌ

by syLim___ 2023. 10. 15.
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/181851

 

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

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

programmers.co.kr


์ข€ ๋งŽ์ด ์ •์งํ•˜๊ฒŒ ํ’€๊ธด ํ–ˆ๋‹ค,,,,,,, ํ—ฟ

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ํ’€์ด ๋ณด๋ฉด์„œ ๋งŽ์ด ๋ฐฐ์›Œ์•ผ๊ฒ ๋‹ค

 

1. key=๋“ฑ์ˆ˜, value=ํ•™์ƒ๋ฒˆํ˜ธ ์ธ Map์„ ๋งŒ๋“ ๋‹ค.

2. ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ, ์ฐธ๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ณ  Map ๋‚ด๋ถ€์˜ ์ตœํ•˜์œ„ ๋“ฑ์ˆ˜๋ณด๋‹ค ๋†’์€ ๋“ฑ์ˆ˜๋ฅผ ๊ฐ€์ง„ ํ•™์ƒ์€ ์ตœํ•˜์œ„ ๋“ฑ์ˆ˜์˜ ํ•™์ƒ๊ณผ ๊ต์ฒดํ•œ๋‹ค.

3. ์ˆœํšŒ๊ฐ€ ๋๋‚˜๋ฉด, Map์˜ key๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ๋‹ค.

4. ์ •๋‹ต์„ ๊ตฌํ•œ๋‹ค

 

import java.util.*;

class Solution {
    public int solution(int[] rank, boolean[] attendance) {
        int answer = 0;
        Map<Integer, Integer> m = new HashMap<>();
        
        for(int i=0; i<rank.length; i++){
            if (attendance[i]){
                if (m.size() < 3){
                    m.put(rank[i],i);
                }
                else if (rank[i] < Collections.max(m.keySet())){
                    m.remove(Collections.max(m.keySet()));
                    m.put(rank[i], i);
                } 
            }
        }
        
        List<Integer> keySet = new ArrayList<>(m.keySet());
        Collections.sort(keySet);
        answer += 10000 * (m.get(keySet.get(0)));
        answer += 100 * (m.get(keySet.get(1)));
        answer += 1 * (m.get(keySet.get(2)));
        
        
        return answer;
    }
}
728x90