[PG42748] K번째수

프로그래머스

🚩 문제 설명

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

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

프로그래머스 #42748

 

◾ 배열을 i에서 j까지 자르고 그 중에서 k번째의 수를 구하는 문제

 

 


 

 

✅ 입출력

array: 입력되는 수열
commands: [i, j, k] 배열을 원소로 가지는 배열
return ➡️ 해당 commands에 따라 나오는 k번째의 수를 담은 배열
array commands return
[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

✔️ 예시

만약 array = [1, 5, 2, 6, 3, 7, 4] 고, commands = [2, 5, 3] 이라면

◾ 위와 같은 과정을 통해서 3이 구해진다.

 

 


 

 

📑 문제 풀이

with 파이썬 (Python)
def solution(array, commands):
    ans = []
    for i in commands:
        tmp = array[i[0] - 1:i[1]]
        tmp = sorted(tmp)
        ans.append(tmp[i[2] - 1])
    return ans

💬 Point

➡️  슬라이싱
➡️  sorted(배열) 함수 : 배열을 정렬한다.

commands를 돌아준다.

◾ 해당 commands에 따라 슬라이싱을 해준다.

  • commands[0]에 i 값이 들어가있다.
  • commands[1]에 j 값이 들어가있다.
  • 따라서 array[ commands[0] - 1 : commands[1] ] 이런식의 로직을 따라 슬라이싱한다.

◾ sorted 함수로 정렬을 해준다.

◾ ans 배열에서 k 번째 수를 추가해준다.

 

 

 

 

 

 

 

 

 

 

 


 

728x90