프로그래밍 /알고리즘 문제풀이

[python] 프로그래머스 - K번째 수

yooj_lee 2021. 2. 15. 09:33
300x250

https://programmers.co.kr/learn/courses/30/lessons/42748

 

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

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

programmers.co.kr

문제 설명

정수배열 array의 i번째 수부터 j번째 수까지 잘라, sub-array를 만든다음 정렬하여 K번째 수를 출력하는 문제. i,j,K는 리스트 형태로 주어지며, commands 배열은 위의 리스트를 포함한 이중 리스트 형태로 주어진다.

문제 접근 및 풀이

여기서 주의할 점은 i번째 수라는 것은 배열의 인덱스 i를 얘기하는 것이 아니라는 점이다. 정말 몇 번째 수냐는 것을 의미하기 때문에 제로 베이스 인덱스인 경우에는 실제 배열의 i번째 수에 접근할 때 array[i]가 아닌, array[i-1]로 접근해야 한다.

정렬 문제이지만, 굳이 정렬을 구현하기보다는 python의 sorted를 사용하면 간편하게 풀 수 있다.

def solution(array, commands):
    answer = [sorted(array[i-1:j])[k-1] for i,j,k in commands]
    
    return answer

 

300x250