Posts k번째로 작은수 [CosProLv2]
Post
Cancel

k번째로 작은수 [CosProLv2]

URL https://programmers.co.kr/learn/courses/33/lessons/1864

문제 설명

  • 자연수가 담겨있는 n x 4 크기의 2차원 배열에서 k번째로 작은 수를 찾으려 합니다. 이때, n은 배열의 세로길이, 4는 배열의 가로길이입니다. 예를 들어 다음은 자연수가 담겨있는 4 x 4 크기의 2차원 배열입니다.
  • 위 2차원 배열에서 가장 작은 수는 2입니다. 두 번째로 작은 수는 4, 세 번째로 작은 수는 5이며, 네 번째로 작은 수는 11입니다.
  • 2차원 배열 arr와 k가 매개변수로 주어질 때, arr에서 k번째로 작은 수를 찾아 return 하도록 solution 함수를 완성해주세요.

매개변수 설명

  • 2차원 배열 arr와 자연수 k가 solution 함수의 매개변수로 주어집니다.
  • arr는 n x 4 크기의 2차원 배열이며, n은 1 이상 20 이하입니다.
  • n은 arr의 세로길이이며, 가로길이는 항상 4입니다.
  • arr의 원소는 1 이상 1,000 이하의 자연수이며, 같은 수가 중복해서 들어있지 않습니다.
  • k는 1 이상 n x 4 이하의 자연수입니다.

return 값 설명

  • 2차원 배열 arr에서 k번째로 작은 수를 찾아서 return 하도록 solution 함수를 작성해주세요.

문제 풀이

  • 2차원 arr을 1차원 list로 변경하기 위해 extend를 사용하고, 해당 list를 sort한뒤 k번째로 (-1) 작은 수를 리턴하게 함
1
2
3
4
5
6
def solution(arr, k):
    temp = []
    for i in arr:
        temp.extend(i)
    temp.sort()
    return temp[k-1]
1
2
3
arr = [[5,12,4,31],[24,13,11,2],[43,44,19,26],[33,65,20,21]]
k = 4
solution(arr, k)
1
11
This post is licensed under CC BY 4.0 by the author.