문제

링크

풀이

#include <stdio.h>
 
void swap(int* a, int* b) {
  int tmp = *a;
  *a = *b;
  *b = tmp;
}
 
void quickSort(int arr[], int left, int right) {
  int i = left, j = right;
  int pivot = arr[(left+right)/2];
 
  while (i <= j) {
    while (arr[i] < pivot) i++;
    while (arr[j] > pivot) j--;
    if (i <= j) {
      swap(&arr[i], &arr[j]);
      i++;
      j--;
    }
  }
  if (left < j)   quickSort(arr, left, j);
  if (right > i)  quickSort(arr, i, right);
}
 
int main(void) {
  int n, k, x[1000];
 
  scanf("%d %d", &n, &k);
  for (int i=0; i<n; i++) {
    scanf("%d", &x[i]);
  }
  quickSort(x, 0, n-1);
  printf("%d", x[n-k]);
  return 0;
}