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

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

위시리 2024. 10. 9. 12:47

알고리즘 고득점 kit - 정렬 - lv 1


문제분석

  • 배열 array 
  • i~j번째 수를 자르고 정렬 한 뒤,
  • k번째 수

 

코드 설계

  • commends의 1차원 길이만큼 반복하면서 값 가져오기
  • array = [i-1, j]
  • array.sort( )
  • ans.append[k-1] # k번째인데 인덱스는 0부터 시작하니까
  • [1번째, 2번째, 3번째 ... ]
  • [idx 0, idx 1, idx 2 ... ]

 

정답 코드

def solution(array, commands):
    answer = []
    for arr in commands:
        ans = array[arr[0]-1:arr[1]]
        ans = sorted(ans)
        answer.append(ans[arr[2]-1])
    return answer

 

다른 사람 코드 1

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

다른 사람 코드 2

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