[문제]
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
[풀이]
인덱스가 중요한 문제이다.
예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면
1. array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.
2. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.
3. 2에서 나온 배열의 3번째 숫자는 5입니다.
문제 설명에 나온 예로 일반화를 적용해 보았다.
1. array[1: 5]로 슬라이싱 할 경우[5, 2, 6, 3] 원소가 구해진다. 이는 array[i-1: j]
로 변환할 수 있다.
2. 1에서 나온 리스트를 정렬하기 위해서는 sort 함수를 사용하면 된다. sort(array[i-1: j])
3. array[2] 원소를 구하면 2에서 나온 리스트의 3번째 숫자인 5가 구해진다. sort(array[i-1: j])[k-1]
[코드]
def solution(array, commands):
answer = []
for element in commands:
i, j, k = element
answer.append(sorted(array[i-1: j])[k-1])
return answer
'문제풀이 > Programmers' 카테고리의 다른 글
[프로그래머스][Lv1][Python] 모의고사 (0) | 2022.02.11 |
---|---|
[프로그래머스][Lv1][Python] 최소직사각형 (0) | 2022.02.11 |
[프로그래머스][Lv1][Python] 예산 (0) | 2022.02.10 |
[프로그래머스][Lv1][Python] 체육복 (0) | 2022.02.10 |
[프로그래머스][Lv1][Python] 위클리 챌린지 4주차 직업군 추천하기 (0) | 2021.08.26 |