๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์‹คํŒจ์œจ ๋ณธ๋ฌธ

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

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์‹คํŒจ์œจ

์š”์ผ์ด 2023. 3. 8. 17:01
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

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

 

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

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

programmers.co.kr

 

 

import java.util.*;

class Solution {
     public int[] solution(int N, int[] stages) {

        int[] answer = new int[N];
        HashMap<Integer, Double> map = new HashMap<>();

        Arrays.sort(stages);

        for(int i=1; i<N+1; i++){

            double mo = 0;
            double ja = 0;

            for(int j=0; j<stages.length; j++){
                if(stages[j]>=i){
                    mo++;
                }
                if(stages[j]==i){
                    ja++;
                }
            }

            double tt;

            if(mo == 0){
                tt = 0.0;
            }else{
                tt = ja/mo;
            }

            if(tt == Double.NaN){
                tt = 0.0;
            }

            map.put(i, tt);
        }

        List<Integer> keySet = new ArrayList<>();

        keySet.addAll(map.keySet());

        keySet.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return map.get(o2).compareTo(map.get(o1));
            }
        });

        for(int i=0; i<answer.length; i++){
            answer[i] = keySet.get(i);
        }

        return answer;
    }
}

 

0.0 / 0.0 ์„ ํ•˜๋ฉด ๊ฐ’์ด 0.0์ด ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ NaN์ด ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ผญ NaN์ฒดํฌ๋ฅผ ํ•ด์•ผํ•œ๋‹ค.

Comments