공돌이 공룡의 서재

[프로그래머스 Level 1] K번째수 / 정렬 / 파이썬 본문

코딩/프로그래머스

[프로그래머스 Level 1] K번째수 / 정렬 / 파이썬

구름위의공룡 2020. 7. 15. 03:59

<문제>

 

<풀이>

def solution(array, commands):
    answer = []
    for i in range(len(commands)):
        temp = array[commands[i][0]-1:(commands[i][1])]
        temp = sorted(temp)
        answer.append(temp[commands[i][2]-1])
    return answer

 

코드 설명:

정렬 알고리즘을 물어보나 싶었는데 효율성 테스트가 없는 것을 보아하니 그런 문제는 아니고 문제 조건을 잘 이해하고 있는지, List에 대해 잘 이해하고 있는지를 물어보는듯하다. List의 slice와 sorted() 함수를 이용하면 쉽게 풀 수 있다. 다만 index와 문제 조건의 '번째'는 1씩 차이가 나니 주의해야 한다.

 

+@:

주어진 리스트들의 길이가 매우 길다면 sorted()는 O(nlogn)이므로 쓰는것은 좋지 않고 더 빠르게 정렬할 수 있는 다른 정렬 알고리즘이 필요하다. 자료구조에서 포스팅을 해봐야겠다.

Comments