본문 바로가기
Coding Test/Python

[프로그래머스] K번째수 Python Code

by giem 2022. 8. 16.
반응형

지난주에 시험 준비를 하느라 포스팅을 못해서 이번 주는 많이 올릴 예정이다.

 

프로그래머스의 K번째 수 문제를 파이썬으로 풀어보겠다.

이것도 쉽지만 indexing을 reminding하기 위해 포스팅하겠다.

 


문제

 


구현

위 문제 설명의 1번을 slicing해서 자르고

2번의 정렬을 한 뒤

3 번의 indexing으로 정답 리스트에 append 했다.


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

1. 커맨드를 받아서 i-1번째부터 j-1번째까지 자른다. ( [i-1:j] )

2. sort를 한 후

3. answer에 해당 index를 append 시킨다.


다른 풀이
def solution(array, commands):
    return list(map(lambda x:sorted(array[x[0]-1:x[1]])[x[2]-1], commands))

원리는 같다.

람다를 사용해서 slicing -> sorting -> indexing을 하고

리스트로 반환한 것이다.

 

위 코드는 람다와 맵을 적절히 활용한 파이써닉 한 코드이다.

 

이 문제는 거의 파이썬에서 최적화된 문제이다.

 

다른 언어로는 어떻게 풀어야 할지 이후 포스트에서 보겠다.

반응형

댓글