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

PhilAI·2023년 8월 1일
0

문제

풀이

풀이 1 - (성공)

  1. commands는 세 개의 값으로 이루어진 리스트로 이루어진 리스트이다. 각각의 리스트는 start, end, 그리고 k 세 개의 값을 가지고 있다.for문을 통해 각 리스트에서 start, end, k 값을 추출한다.
  2. array에서 start 인덱스부터 end 인덱스까지의 부분 리스트를 만든다.
  3. 부분 리스트를 오름차순으로 정렬한다.
  4. 정렬된 부분 리스트에서 k번째 원소를 찾아 answer 리스트에 추가한다.
def solution(array, commands):
    answer = []
    for command in commands:
        start, end, k = command
        temp = sorted(array[start - 1:end])
        answer.append(temp[k - 1])
    
    return answer

풀이 2 - (성공)

리스트 컴프리헨션을 이용해 한줄 코딩을 해볼겠습니다!

1.리스트 컴프리헨션을 이용해 commands 리스트에 있는 각 튜플을 순회하면서 start, end, k 값을 추출하여 새로운 리스트를 생성한다.

[start, end, k for start, end, k in commands]
  1. start와 end를 사용하여 array에서 부분 리스트를 추출하고, sorted() 함수를 사용하여 해당 부분 리스트를 정렬한다.이때 start와 end에서 1을 빼는 이유는 파이썬 리스트의 인덱스가 0부터 시작하기 때문이다.
def solution(array, commands):
    return [sorted(array[start - 1:end])[k - 1] for start, end, k in commands]

reference

profile
철학과가 도전하는 Big Data, AI

0개의 댓글