반응형
문제
수 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 |
댓글