[프로그래머스/파이썬] K번째수(42748) 풀이
업데이트:
문제 정보
- 문제 출처: 프로그래머스 코딩테스트 연습
- 문제 링크: K번째수(42748)
- 문제풀이 코드 GitHub 링크
- 풀이 언어: Python 3
풀이
문제
배열 array와 여러 개의 commands가 주어집니다.
각 명령 [i, j, k]에 대해:
array의i번째부터j번째까지 자르고- 정렬한 뒤
k번째 수를 결과에 담으면 됩니다.
코드
def solution(array, commands):
answer = []
for command in commands:
answer.append(sorted(array[command[0]-1:command[1]])[command[2]-1])
return answer
print(solution([1, 5, 2, 6, 3, 7, 4], [[2, 5, 3], [4, 4, 1], [1, 7, 3]]))
설명
각 명령을 독립적으로 처리하면 되는 구현 문제입니다.
- 슬라이싱으로 구간을 자릅니다.
sorted()로 정렬합니다.k-1인덱스를 뽑아 결과 리스트에 추가합니다.
명령 수를 C, 각 구간 길이를 L이라 하면
대략 O(C * L log L)로 동작합니다.
댓글남기기