문제설명 :
배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.
예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면
array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.
1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.
2에서 나온 배열의 3번째 숫자는 5입니다.
배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요.
function solution(array, commands) {
const result = [];
for(let i = 0; i < commands.length; i++) {
let list = array.slice(commands[i][0] - 1, commands[i][1]).sort((a, b) => {return a - b});
result.push(list[commands[i][2] - 1]);
}
return result;
}
풀이방법
commands에서 주어진 k번째의 숫자를 위한 배열을 하나 만들고 commands의 각 요소마다 모두 접근하여 모든 요소를 사용해야하기 때문에 반복문을 사용한다. 반복문으로 commands의 요소마다 접근하여 0번째 요소의 값을 slice메소드의 시작 매개변수로 담고, 1번째 요소의 값을 slice의 끝 매개변수로 담아 배열을 잘라낸 후 sort메소드를 활용하여 숫자가 작은순서부터 정렬해준다. list에서 commands의 2번째 요소의 값으로 n번째의 요소를 찾아 result배열에 push로 해당 값을 담아준다.
웹에서 사용되는 데이터나 자원(resource)을 HTTP URI로 표현하여 HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식으로 URI와 함께 표현상태를 함께 전달하게 되는데 이 표현 상태에는 json, html, xlt, 일반텍스트 등이 있다. 그중에 json은 사용언어와 상관없을 뿐 아니라 사람과 컴퓨터 모두 읽을 수 있어 가장 많이 사용되는 형태이다.