Coding Cantabile

[Programmers] K번째 수(Python3, 파이썬) 본문

Coding Test/Programmers

[Programmers] K번째 수(Python3, 파이썬)

Gracekim 2023. 6. 3. 20:18

본 게시글은 프로그래머스 코딩테스트 연습 문제를 '파이썬, Python3' 언어로 풀이한 내용을 주관적으로 정리하였으며, 내용과 관련된 코드리뷰 및 피드백 환영합니다.

레벨

Level 1

문제 출처

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


내 풀이

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

 

commands만큼 루프를 돌리며 슬라이싱 후 정렬해주고, 해당 인덱스를 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

여기서 핵심은 i, j, k를 한 꺼번에 저장했다는 점이다.. 저렇게 리스트를 각각 변수에 저장할 수 있다는 것을 알게 되었다.