์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค
๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/JAVA

[JAVA] ๋ฐฑ์ค€ 11004๋ฒˆ ใ€K๋ฒˆ์งธ ์ˆ˜ใ€‘

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/JAVA

[JAVA] ๋ฐฑ์ค€ 11004๋ฒˆ ใ€K๋ฒˆ์งธ ์ˆ˜ใ€‘

2022. 10. 9. 17:11


์ด ๋ฌธ์ œ๋Š”, BufferedReader ๋กœ ์ž…๋ ฅ ๋ฐ›๊ณ , sort() ๋ฉ”์„œ๋“œ๋ฅผ ์“ฐ๋ฉด ํ•ด๊ฒฐ๋˜๊ธด ํ•˜์ง€๋งŒ, ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜• ํŠน์„ฑ์ƒ, ์ •๋ ฌ์„ ๊ตฌํ˜„ํ•˜๊ฒŒ๋” ์„ค๊ณ„ํ•ด๋†จ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐ์ด ๋“ค๊ธฐ๋„ ํ–ˆ๊ณ , ์†๋„๋„ ๋А๋ฆฐ ๊ฒƒ ๊ฐ™์•„ ์ฐพ์•„๋ณด๋‹ˆ 

 

Quick Sort ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด์„œ ํ‘ธ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์•˜๋‹ค.

 

double pivot quick sort ๋ผ๋Š” quick sort ์˜ ๋‹ค๋ฅธ ๋ฒ„์ „๋„ ์žˆ์—ˆ์ง€๋งŒ, 

 

Quick sort ์ž์ฒด๋ฅผ ์ฒ˜์Œ ์ ‘ํ•ด๋ด์„œ, ์ผ๋‹จ Quick Sort ๋ฅผ ๊ณต๋ถ€ํ•ด๋ณด๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ œ์ถœํ•˜์˜€๋‹ค.

 

์˜ค๋ฆ„์ฐจ์ˆœ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ด๋ณด๊ฒ ๋‹ค.

 

๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด, ๊ธฐ์ค€ ๊ฐ’์„ ํ•˜๋‚˜ ์ •ํ•˜๊ณ , start index 0์—์„œ๋ถ€ํ„ฐ ๊ธฐ์ค€๊ฐ’๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ’์„ ๋ฐœ๊ฒฌํ•˜๊ณ , end index ๋์—์„œ๋ถ€ํ„ฐ ๊ธฐ์ค€๊ฐ’๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฐ’์„ ๋ฐœ๊ฒฌํ•  ์‹œ, ๋‘์ˆ˜์˜ ์œ„์น˜๋ฅผ ๊ตํ™˜ํ•˜๊ณ , start ์ธ๋ฑ์Šค๋Š” +1 end ์ธ๋ฑ์Šค๋Š” -1์„ ํ•˜๊ณ , 

 

start index์™€ end index๊ฐ€ ๋งŒ๋‚ ๋•Œ ๊นŒ์ง€ ๊ตํ™˜์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๋ฃจํ”„๊ฐ€ ๋๋‚œ ๋’ค start index์˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณต๊ฐ„์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๋˜ ์œ„์™€๊ฐ™์€ ๋ฃจํ”„๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด ์ตœ์ข…์ ์œผ๋กœ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

 

 

 

 

[5] 3 8 (9) 2 4 {7} 

 

 ( [ ] = ์‹œ์ž‘์ธ๋ฑ์Šค ( ) = ๊ธฐ์ค€๊ฐ’ { } = ๋ ์ธ๋ฑ์Šค )

 

์‹œ์ž‘ ์ธ๋ฑ์Šค 5, ๊ธฐ์ค€๊ฐ’ 9 ๋ ์ธ๋ฑ์Šค 7 ์ธ ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ


5 3 8 [(9)] 2 4 {7} 

 

 

์‹œ์ž‘ ์ธ๋ฑ์Šค๋Š” ๊ธฐ์ค€๊ฐ’๊ณผ ๊ฐ’์ด ๊ฐ™์€ 9์—์„œ ๋ฉˆ์ถค, ๋ ์ธ๋ฑ์Šค๋Š” ๊ธฐ์ค€๊ฐ’๋ณด๋‹ค ์ž‘์€ 7์—์„œ ๋ฉˆ์ถค, ๋‘ ์ˆ˜๋ฅผ ๊ตํ™˜

 

๊ธฐ์ค€ ๊ฐ’์€ 7๋กœ ๋ฐ”๋€” ๊ฒƒ์ด๋‹ค.

 


5 3 8 (7) 2 {4} [9] 

 

์‹œ์ž‘ ์ธ๋ฑ์Šค๋Š” 7๋ณด๋‹ค ๊ทธ๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฐ’์„ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•ด ๊ฒฐ๊ตญ 9๊นŒ์ง€ ์™”๊ณ , ๋ ์ธ๋ฑ์Šค๋Š” 7๋ณด๋‹ค ์ž‘์€ 4๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์ง€๋งŒ, ์ด๋ฏธ ์‹œ์ž‘ ์ธ๋ฑ์Šค์™€ ๋ ์ธ๋ฑ์Šค๊ฐ€ ๋งŒ๋‚˜ ๊ต์ฐจํ•œ ๋’ค ๋ฐœ๊ฒฌํ–ˆ์œผ๋ฏ€๋กœ ๊ตํ™˜์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Œ

 

์‹œ์ž‘ ์ธ๋ฑ์Šค์˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณต๊ฐ„์„ ๋ถ„๋ฆฌํ•œ๋‹ค.

 


[5] 3 (8) 7 2 {4}   ||    9

 

9๋Š” ๊ฐ’์ด 1๊ฐœ์ด๋ฏ€๋กœ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

 


5 3 [(8)] 7 2 {4}  ||   9

 

์œ„ ๊ฒฝ์šฐ๋„ ๊ธฐ์ค€๊ฐ’ 8๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฐ’์„ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•ด ์‹œ์ž‘ ์ธ๋ฑ์Šค๊ฐ€ 8๊นŒ์ง€ ๋„๋‹ฌํ–ˆ๊ณ  ๋์ธ๋ฑ์Šค๋Š” 4๊ฐ€ ๊ธฐ์ค€๊ฐ’ 8๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ 4๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค. ๋‘ ์œ„์น˜๋ฅผ ๊ตํ™˜ํ•œ๋‹ค.

 


5 3 (4) [7] {2} 8   ||   9

 

์‹œ์ž‘ ์ธ๋ฑ์Šค๋Š” ๊ธฐ์ค€๊ฐ’ 4๋ณด๋‹ค ํฐ 7์„ ๋ฐœ๊ฒฌํ–ˆ๊ณ , ๋ ์ธ๋ฑ์Šค๋Š” ๊ธฐ์ค€๊ฐ’ 4๋ณด๋‹ค ์ž‘์€ 2๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๋˜ํ•œ ๋‘ ์ธ๋ฑ์Šค๊ฐ€ ๋งŒ๋‚˜๊ธฐ ์ด์ „์ด๋ฏ€๋กœ ๊ตํ™˜์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 


5 3 (4) {2} [7]  8   ||   9

 

๋‘๋ฒˆ์งธ ๋ฃจํ”„๊ฐ€ ์ง€๋‚œ๋’ค์—๋Š” ์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ๊ฐ€ ๋˜๊ณ , ์‹œ์ž‘ ์ธ๋ฑ์Šค์˜ ์œ„์น˜์ธ 7์„ ๊ธฐ์ค€์œผ๋กœ ๊ณต๊ฐ„์„ ๋˜ ๋ถ„๋ฆฌํ•œ๋‹ค.

 


[5] (3) 4 {2}   ||    [(7)] {8}    ||   9

 

์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋„, ์ง€๊ธˆ๊นŒ์ง€ ์‚ฌ์šฉํ–ˆ๋˜ ๋ฃจํ”„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ ์šฉํ•˜๋ฉด

 

์ฒซ๋ฒˆ์งธ ๊ณต๊ฐ„์˜ ๊ฒฝ์šฐ ๊ธฐ์ค€๊ฐ’ 3๋ณด๋‹ค ํฐ 5์™€ ๊ธฐ์ค€๊ฐ’ 3๋ณด๋‹ค ์ž‘์€ 2๋ฅผ ๊ตํ™˜ํ•˜๊ณ  ๋‚˜๋ฉด, ์‹œ์ž‘์ธ๋ฑ์Šค์™€ ๋ ์ธ๋ฑ์Šค๋Š” 3์œผ๋กœ ๋ชจ์ด๊ฒŒ ๋œ๋‹ค.

 

๋‘๋ฒˆ์งธ ๊ณต๊ฐ„์˜ ๊ฒฝ์šฐ ์—ญ์‹œ, ๊ธฐ์ค€๊ฐ’ 7๋กœ ์‹œ์ž‘์ธ๋ฑ์Šค์™€ ๋ ์ธ๋ฑ์Šค๊ฐ€ ๋ชจ์ด๊ฒŒ ๋œ๋‹ค.

 

 

 


2 {[(3)]} 4 5   ||   {[(7)]} 8   ||   9

 

์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ์œ„์™€ ๊ฐ™์„ ๊ฒƒ์ด๊ณ , ์ •๋ ฌ์ด ๋˜์–ด์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋žœ๋คํ•œ ๋ฐฐ์—ด๋กœ, ํ•œ๋ฒˆ ๋‹จ๊ณ„๋ณ„๋กœ ๊ทธ๋ ค๋ณด๋ฉด ์ดํ•ด๊ฐ€ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค.

 

 

 

์ž๋ฐ” [JAVA] - ํ€ต ์ •๋ ฌ (Quick Sort)

[์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชจ์Œ] ๋”๋ณด๊ธฐ 1. ๊ณ„์ˆ˜ ์ •๋ ฌ (Counting Sort) 2. ์„ ํƒ ์ •๋ ฌ (Selection Sort) 3. ์‚ฝ์ž… ์ •๋ ฌ (Insertion Sort) 4. ๊ฑฐํ’ˆ ์ •๋ ฌ (Bubble Sort) 5. ์…ธ ์ •๋ ฌ (Shell Sort) 6. ํž™ ์ •๋ ฌ (Heap Sort) 7. ํ•ฉ..

st-lab.tistory.com

์ž์„ธํ•œ ์›๋ฆฌ๋Š” ์œ„ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹๋‹ค.

 

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] input1 = br.readLine().split(" ");
        int N = Integer.valueOf(input1[0]);
        int index = Integer.valueOf(input1[1]);


        int[] arr = new int[N];
        String[] input2 = br.readLine().split(" ");
        for (int i = 0; i < input2.length; i++) {
            arr[i] = Integer.valueOf(input2[i]);
        }
        quickSort(arr);
//        System.out.println(Arrays.toString(arr));
        System.out.println(arr[index-1]);

    }

    private static void quickSort(int[] array) {
        quickSort(array, 0, array.length - 1);
    }

    private static void quickSort(int[] array, int start, int end) {
        int eachPivotPoint = getAfterSwapPivotPoint(array, start, end);
        if (start < eachPivotPoint - 1) {
            quickSort(array, start, eachPivotPoint - 1);
        }
        if (end > eachPivotPoint) {
            quickSort(array, eachPivotPoint, end);
        }
    }

    private static int getAfterSwapPivotPoint(int[] array, int start, int end) {
        int Pivot = array[(start + end) / 2];
        while (start <= end) {
            while (array[start] < Pivot) {
                start++;
            }
            while (array[end] > Pivot) {
                end--;
            }
            if (start <= end) {
                swap(array, start, end);
                start ++;
                end--;
            }
        }
        return start;
    }

    private static void swap(int[] array, int start, int end) {
        int tmp = array[start];
        array[start] = array[end];
        array[end] = tmp;
    }
}

 

    '๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [JAVA] ๋ฐฑ์ค€ 9012๋ฒˆ ใ€๊ด„ํ˜ธใ€‘
    • [JAVA] ๋ฐฑ์ค€ 10828๋ฒˆ ใ€์Šคํƒใ€‘
    • [JAVA] ๋ฐฑ์ค€ 11652๋ฒˆ ใ€์นด๋“œใ€‘
    • [JAVA] ๋ฐฑ์ค€ 10989๋ฒˆ ใ€์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3ใ€‘
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

    ๋‹จ์ถ•ํ‚ค

    ๋‚ด ๋ธ”๋กœ๊ทธ

    ๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
    Q
    Q
    ์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
    W
    W

    ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

    ๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
    E
    E
    ๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
    C
    C

    ๋ชจ๋“  ์˜์—ญ

    ์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
    S
    S
    ๋งจ ์œ„๋กœ ์ด๋™
    T
    T
    ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
    H
    H
    ๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
    Shift + /
    โ‡ง + /

    * ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.