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

[๊ตฌ๋ฆ„ํ†ค์ฑŒ๋ฆฐ์ง€/JAVA] 5์ผ์ฐจ - ์ด์ง„์ˆ˜ ์ •๋ ฌ ๋ณธ๋ฌธ

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

[๊ตฌ๋ฆ„ํ†ค์ฑŒ๋ฆฐ์ง€/JAVA] 5์ผ์ฐจ - ์ด์ง„์ˆ˜ ์ •๋ ฌ

์š”์ผ์ด 2023. 8. 18. 15:35
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

https://level.goorm.io/exam/195687/%EC%9D%B4%EC%A7%84%EC%88%98-%EC%A0%95%EB%A0%AC/quiz/1

 

๊ตฌ๋ฆ„LEVEL

๋‚œ์ด๋„๋ณ„ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ SW ์—ญ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

level.goorm.io

 

์ฝ”๋“œ

import java.io.*;
import java.util.*;

class Binary implements Comparable<Binary>{

    public int index;
    public int cnt;

    Binary(int index, int cnt){
        this.index = index;
        this.cnt = cnt;
    }

    @Override
    public int compareTo(Binary o){
        if(this.cnt==o.cnt) {
            return o.index - this.index;
        }else{
            return o.cnt - this.cnt;
        }
    }

}



class Main {
    public static void main(String[] args) throws Exception {
        Scanner in= new Scanner(System.in);
        int N = in.nextInt();
        int K = in.nextInt();
        int answer = 0;
        ArrayList<Binary> map = new ArrayList<>();
        for(int i=1; i<N+1; i++){
            int v = in.nextInt();
            String value = Integer.toBinaryString(v);
            int cnt = 0;
            for(int j=0; j<value.length(); j++){
                if(value.charAt(j) == '1'){
                    cnt++;
                }
            }
            Binary tmp = new Binary(v, cnt);
            map.add(tmp);
        }

        Collections.sort(map);
        answer = map.get(K-1).index;
        System.out.println(answer);
    }
}
Comments