300x250
https://programmers.co.kr/learn/courses/30/lessons/42748
문제 설명
정수배열 array의 i번째 수부터 j번째 수까지 잘라, sub-array를 만든다음 정렬하여 K번째 수를 출력하는 문제. i,j,K는 리스트 형태로 주어지며, commands 배열은 위의 리스트를 포함한 이중 리스트 형태로 주어진다.
문제 접근 및 풀이
여기서 주의할 점은 i번째 수라는 것은 배열의 인덱스 i를 얘기하는 것이 아니라는 점이다. 정말 몇 번째 수냐는 것을 의미하기 때문에 제로 베이스 인덱스인 경우에는 실제 배열의 i번째 수에 접근할 때 array[i]가 아닌, array[i-1]로 접근해야 한다.
정렬 문제이지만, 굳이 정렬을 구현하기보다는 python의 sorted를 사용하면 간편하게 풀 수 있다.
def solution(array, commands):
answer = [sorted(array[i-1:j])[k-1] for i,j,k in commands]
return answer
300x250
'프로그래밍 > 알고리즘 문제풀이' 카테고리의 다른 글
[python] 프로그래머스 - 올바른 괄호 (0) | 2021.12.09 |
---|---|
[백준] 문제 입력 형식 정리 (python) (0) | 2021.08.18 |
[python] 프로그래머스 - 주식가격 (0) | 2021.02.15 |
[python] leetcode 739. Daily Temperatures (0) | 2021.02.13 |
[python] leetcode 316. Remove Duplicate Letters (0) | 2021.02.13 |