공부 기록장

K 번째 수 본문

코딩 테스트/프로그래머스 문제 풀이

K 번째 수

빛나무 2022. 6. 12. 00:51

배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, 자르고 정렬한 리스트의 k번째에 있는 수를 구하는 문제

 

매개변수로는 배열 array와 [i, j, k]를 원소로 가지는 2차원 배열 commands가 주어진다.

commands의 모든 원소에 대해 설명된 연산을 적용했을 때 나온 결과를 배열에 담아 반환하도록 solution 함수를 작성해야 한다.

 

[제한 사항]

- array의 길이는 1 이상 100 이하이다.

- array의 각 원소는 1 이상 100 이하이다.

- commands의 길이는 1 이상 50 이하이다.

- commands의 각 원소는 길이가 3이다.

 

첫 풀이 ...

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

 

commands의 각 원소 리스트에 대해 array 리스트에 연산을 적용해서 연산 결과를 answer 리스트에 저장해야겠다고 생각

일단은 commands의 각 원소 리스트에 접근하는 첫 번째 반복문

commands의 각 원소의 첫 번째, 두 번째 원소를 이용해 array에서 해당 범위를 잘라내서 arr 리스트에 저장

arr 리스트를 오름차순으로 정렬하고 commands의 각 리스트 원소의 마지막 원소로 원하는 값을 answer에 저장