알고리즘 풀이/프로그래머스

[Level1] K번째수

mhko411 2021. 1. 22. 18:11
728x90

문제

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

 

입력

array

commands

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

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

 

출력

[5,6,3]


1. commands에서 i, j, k를 꺼낸다.

2. slicing을 활용하여 number에 i-1:j 까지 대입한다.

3. number를 오름차순 정렬하고

4. number의 k-1번째 수를 answer에 추가한다.

 

python

def solution(array, commands):
    answer = []
    
    for idx in range(len(commands)):
        i=commands[idx][0]
        j=commands[idx][1]
        k=commands[idx][2]
        
        number=array[i-1:j]
        number.sort()
        answer.append(number[k-1])
    return answer