코딩테스트/프로그래머스

[프로그래머스] K번째 수 (정렬)

박소민 2022. 2. 3. 16:00
문제: K번째 수
 

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

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

programmers.co.kr

 

  • 내 풀이
def solution(array, commands):
    answer=[]
    arr=[]
    for com in commands:
        i=com[0]
        j=com[1]
        k=com[2]
        for n in range(i-1,j):
            arr.append(array[n])  
        arr.sort()
        answer.append(arr[k-1])
        for m in range(len(arr)):
            arr.pop()
    return answer

→ for문 없이 그냥 바로 arr=array[i-1:j] 라고 넣어도 됨

 

  • 다른 사람 풀이 1)
def solution(array, commands):
    answer = []
    for command in commands:
        i,j,k = command
        answer.append(list(sorted(array[i-1:j]))[k-1])
    return answer

→ i,j,k값 한번에 받아오기

 

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

→ 람다식을 이용한 가장 짧은 코드