코딩 테스트 연습 - k번째수(프로그래머스 레벨1)

versatile309·2020년 3월 12일
0

CodingTest

목록 보기
2/13

01. 이해

정수 배열과 길이 3의 커맨드로 이루어진 2차원 커맨드 배열을 받는다. 
정부 배열을 각 커맨드별 첫번째 인덱스의 수부터 두번째 인덱스의 수까지로 자르고, 정렬하고,
이중에 세번째 인덱스 번째에 있는 숫자를 모아서 배열로 반환
   

02. 계획

2차원 커맨드 배열에서 차례대로 커맨드를 읽는다.
정수배열을 슬라이스, 정렬, 커맨드에 맞춰 숫자를 찾는다.
정답 배열에 숫자를 넣는다.
반복.

03. 실행

fun solution(array: IntArray, commands: Array<IntArray>) : IntArray {

    var result = intArrayOf()

    commands.forEach {
       result = result.plus(array.copyOfRange(it[0]-1, it[1]).sortedArray()[it[2]-1])
    }

    return result
}

04. 회고

'모의고사' 문제를 풀 때 result 변수를 할당하지 않는 방법을 피드백 받아서 해보려고 했는데
실패했다. 프로그래머스에 답안을 제출하고 나서 본 다른 사람들의 풀이에서 변수를 할당하지 않는
방법을 봤는데 아마 그 방법은 내 머리로는 생각해 내지 못했을 듯.
그래도 이번에는 How to solve it의 방법을 나름 준수해서 풀었기 때문에 1보 전진한 느낌이다.
다음에는 최대한 변수를 할당하지 않는 방법을 강구해 봐야 겠다.

*kotlin의 collection 자료구조는 정말 지원하는 함수가 무궁무진한 것 같다.

0개의 댓글