Code in

프로그래머스 정렬 K번째 수 문제풀이 with Kotlin 본문

알고리즘 스터디_문제풀이

프로그래머스 정렬 K번째 수 문제풀이 with Kotlin

heyhmin 2020. 8. 10. 18:05

프로그래머스의 코딩테스트 연습 문제 정렬 부분 K번째 수 문제입니다.

 

프로그래머스 K번째 수 문제

IntelliJ IDEA에서 실행한 문제 풀이입니다. 

var ans = intArrayOf()
// 웹 IDE에서 IntelliJ로 옮기면서 보다 차이가 적어지도록 하기 위해 생성합니다.
var inputarray: IntArray = intArrayOf(1, 5, 2, 6, 3, 7, 4)
var in1: IntArray = intArrayOf(2, 5, 3)
var in2: IntArray = intArrayOf(4, 4, 1)
var in3: IntArray = intArrayOf(1, 7, 3)
// 1차원 Int 배열 생성하기

var commands: Array<IntArray> = arrayOf(in1, in2, in3)
// 2차원 배열 commands 생성하기

fun solution(array: IntArray, commands: Array<IntArray>): IntArray {
    var answer = intArrayOf()

    //coding start
    
    var tmp = intArrayOf()
    commands.forEach {
    
        tmp = array.sliceArray((it[0] - 1) until it[1])
        // 처음에, it은 commands의 첫번째 요소입니다.
        // it[0]은 2인데, inputarray의 첫번째 값의 index가 0부터 시작하기 때문에 1을 빼줍니다.
        // it[1]은 5인데, until A가 A이전의 값까지를 의미하기 때문에 그대로 사용합니다.
        
        tmp.sort()
        // tmp가 [5, 2, 6, 3]에서 [2, 3, 5, 6]으로 정렬됩니다.
        
        answer += tmp[ it[2] - 1 ]
        // tmp에서 it[2]의 위치에 해당하는 값을 선택해서 answer에 추가해줍니다.
        // answer이 intArrayOf()라서 자동으로 배열의 요소로 추가됩니다.
    }
    
    //coding end

    ans = answer.copyOf()
    // 웹 IDE에서는 사용하지 않습니다. 
    
    return answer
}
fun main() {
    solution(inputarray, commands)
    print(ans.contentToString())
    // 배열 값을 [5, 6, 3]으로 출력합니다.
}

 

URL: https://programmers.co.kr/learn/courses/30/lessons/42748?language=kotlin#

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

Comments