[백준] java 25305

Sundae·2023년 7월 26일
0

백준

목록 보기
15/63
post-thumbnail
post-custom-banner

https://www.acmicpc.net/problem/25305


문제

2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에
NN명의 학생들이 응시했다.

이들 중 점수가 가장 높은
kk명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라.

커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다.

풀이 방법

어렵지 않았던 문제다. N명 분의 점수를 버블 정렬을 사용하여 오름차순으로 정렬한 뒤
마지막 인덱스에서 k를 빼주었다.

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


public class Main{
   public static void main(String[] args) throws IOException { 
      BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
      StringTokenizer st; 
      st = new StringTokenizer(bf.readLine() , " ");
      int N = Integer.parseInt(st.nextToken());
      int k = Integer.parseInt(st.nextToken());
      int[] array = new int[N];
      
      st = new StringTokenizer(bf.readLine() , " ");
      for( int i = 0; i < N; i++) 
      {
    	  array[i] = Integer.parseInt(st.nextToken());
      }
    	      
      for( int i = 0 ; i < array.length; i++) 
      {
    	  for(int j = 0; j < array.length-1; j++) 
    	  {
    		  if(array[j] > array[j+1]) 
    		  {
    			  int tmp = array[j+1];
	    		  array[j+1] = array[j];
	    		  array[j] = tmp;
    		  }   		 
    	  }
      }      
      // 배열 길이에서 k를 빼준다
      System.out.println(array[array.length-k]);  
   }  
}     
     

느낀점

매우 중요하다고 알려진 정렬 알고리즘 카테고리에 진입했다.
버블 정렬만을 알고 있는 나는 1번부터 3번까지는 무리없이 풀었지만, 4번부터는 다른 정렬 방법을 알지 못한다면 풀 수 없는 문제들이다.
그리하여 나는 이번 카테고리에서 여러 개의 정렬 방법을 공부해가며 카테고리를 완료할 생각이다.

profile
성장 기록 / 글에 오류가 있다면 댓글 부탁드립니다.
post-custom-banner

0개의 댓글