본문 바로가기
공부 정리/백준

[백준] 자바 11004 K번째 수

by 경적필패. 2021. 9. 2.
반응형

문제

수 N개 A1, A2,..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N(1 ≤ N ≤ 5,000,000)과 K (1 ≤ K ≤ N)이 주어진다.

둘째에는 A1, A2,..., AN이 주어진다. (-109 ≤ Ai ≤ 109)

출력

A를 정렬했을 때, 앞에서부터 K번째 있는 수를 출력한다.


테스트 케이스

 

입력 1

1 1
-30

출력 1

-30

 

입력 2

5 2
4 1 2 3 5

출력 2

2

 

입력 3

5 3
-10000 -3000 3 324124 324214

출력 3

3


접근

1.숫자 두 개를 입력받습니다. 하나는 숫자 개수, 하나는 몇 번째 숫자를 출력할지

2. 숫자 개수만큼 수를 입력받습니다. 

3. 원하는 순서의 숫자를 출력합니다.

 

Arraylist를 이용하여 정렬을 한 후에, get함수를 이용하니 쉽게 해결되었습니다.


코드

import java.awt.desktop.SystemEventListener;
import java.io.*;
import java.math.*;
import java.util.*;

public class Main {

	/*
 	 11004 problem
	*/
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		// TODO Auto-generated method stub
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		ArrayList<Integer> list = new ArrayList<>();
		StringTokenizer st = new StringTokenizer(br.readLine());
		int n = Integer.parseInt(st.nextToken());
		int k = Integer.parseInt(st.nextToken());
		
		st = new StringTokenizer(br.readLine());
		for(int i=0; i<n; i++) {
			list.add(Integer.parseInt(st.nextToken()));
		}
		Collections.sort(list);
		bw.write(String.valueOf(list.get(k-1)));
		
		
		bw.flush();
		br.close();
		bw.close();
	}
}

주의

 

 

반응형

'공부 정리 > 백준' 카테고리의 다른 글

[백준] 자바 2563 색종이  (0) 2021.09.06
[백준] 자바 10610 30  (0) 2021.09.03
[백준] 자바 11723 집합  (0) 2021.09.01
[백준] 자바 1476 날짜 계산  (0) 2021.08.31
[백준] 자바 1475 방 번호  (0) 2021.08.30

댓글