🌭 문제 설명
- 수
N
개 A1, A2, ..., AN
이 주어진다. A
를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.
🍗 제한 사항
🎁 입출력 예시
- 첫째 줄에
N(1 ≤ N ≤ 5,000,000)
과 K (1 ≤ K ≤N)
이 주어진다.
- 둘째에는
A1, A2, ..., AN
이 주어진다. (-109 ≤ Ai ≤ 109)
- A를 정렬했을 때, 앞에서부터
K
번째 있는 수를 출력한다.
😎 나의 풀이
let fs = require('fs');
let input = fs.readFileSync('input.txt').toString().split('\n');
let [n, k] = input[0].split(' ').map(Number);
let arr = input[1].split(' ').map(Number);
arr.sort((a, b) => a - b);
console.log(arr[k - 1]);
- 첫째 줄의
n
과k
를 숫자로 바꿔준다.
- 둘째 줄의
arr
을 똑같이 만들어주고 arr
을 sort
로 오름차순 정렬시켜준다.
- 출력할 때
arr
의 k
값을 넣어서 -1
을 해준 인덱스 값을 출력해준다.
🧵 다른 풀이
let fs = require('fs')
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let [n, k] = input[0].split(' ').map(Number)
let arr = input[1].split(' ').map(Number)
arr.sort(function(a,b){
return a-b
})
console.log(arr[k-1])
- 첫번째, 두 번째 풀이는 내 풀이와 같다.
sort
를 함수를 선언해서 a-b
로 명시적으로 풀었다.
- 내 풀이와 같이
k - 1
한 arr
의 값을 출력한다.