알고리즘

[백준] 11004번 K번째 수 _ JAVA ( 주석 설명 ) 본문

백준 - JAVA/정렬

[백준] 11004번 K번째 수 _ JAVA ( 주석 설명 )

wch_s 2023. 3. 9. 16:19

코드

1번

- Arrays.sort()

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        st  = new StringTokenizer(br.readLine());

        int N = Integer.parseInt(st.nextToken()); //N개의 수
        int K = Integer.parseInt(st.nextToken()); //K번째 수

        int ary[] = new int[N];

        st  = new StringTokenizer(br.readLine());
        for(int i=0;i<N;++i){
            ary[i] = Integer.parseInt(st.nextToken());
        }

        Arrays.sort(ary); //오름차순 정렬

        System.out.println(ary[K-1]);
    }
}

 


 

2번

Collections.sort()

Collections.sort()가 Arrays.sort()보다 빠를 줄 알았으나, 더 느린 모습을 보여주었다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        st  = new StringTokenizer(br.readLine());

        int N = Integer.parseInt(st.nextToken()); //N개의 수
        int K = Integer.parseInt(st.nextToken()); //K번째 수

        ArrayList<Integer> list = new ArrayList<>(N);

        st  = new StringTokenizer(br.readLine());
        for(int i=0;i<N;++i){
            list.add(Integer.parseInt(st.nextToken()));
        }

        Collections.sort(list); //오름차순 정렬

        System.out.println(list.get(K-1));
    }
}

 


3번

- Quick-sort