사이트: HackerRank
난이도: 미디움
분류: Greedy
배열과 정수 k가 주어지면 k 길이의 파생 배열 안에서 min, max 값의 차이가 최소인 값을 찾아서 반환하라.
function maxMin(k, arr) {
// Write your code here
arr.sort((v1, v2) => v1 - v2);
let result = Infinity;
for (let i = 0; i < arr.length - (k - 1); i++) {
result = Math.min(result, arr[i + (k - 1)] - arr[i]);
}
return result;
}
우선 주어진 배열을 정렬을 한다. 그러고 인덱스 0번째부터 마지막 인덱스 - k 까지 배열을 순회하여 파생배열의 min, max 값을 찾아 그 값의 차이가 가장 작은 값을 찾도록 하였다.
바로 풀 수 있었던 문제들은 지금은 생략하고 추후 더 효율적인 문제 풀이법을 찾아보도록 하겠다.