[프로그래머스] 코딩테스트 연습 - 6

krkorklo·2022년 1월 25일
0

프로그래머스

목록 보기
6/78

level 1 - k번째 수

배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.

입출력 예시
array : [1, 5, 2, 6, 3, 7, 4]
commands : [[2, 5, 3], [4, 4, 1], [1, 7, 3]]
→ [5, 6, 3]

쉽다고 생각하고 풀었다.

function solution(array, commands) {
    var answer = [];
    for (var i=0; i<commands.length; i++) {
        var sliceArr = array.slice(commands[i][0] - 1, commands[i][1]);
        sliceArr.sort();
        answer.push(sliceArr[commands[i][2] - 1]);
    }
    return answer;
}

ㅎㅎ틀림
테스트케이스2가 뭔지는 모르겠는데 쨌든 걔가 통과가 안 됐다...
아예 틀리는 것보다 하나만 문제니까 더 해결하기 어려웠음😪

그래서 질문하기 잘 살펴보니까 sort에 함수를 설정해줘야 한다고❗️

function solution(array, commands) {
    var answer = [];
    for (var i=0; i<commands.length; i++) {
        var sliceArr = array.slice(commands[i][0] - 1, commands[i][1]);
        sliceArr.sort(function (a, b) { return a - b; });
        answer.push(sliceArr[commands[i][2] - 1]);
    }
    return answer;
}

sort에 함수만 설정해주니까 잘 풀렸다

0개의 댓글