# 문제
# 문제 접근
문제 설명이 곧 풀이 방법이다.
문제만 잘 읽으면 되고, commads 에서 i, j, k를 획득하여 입력 array를 자르고 정렬하는 것이 주 포인트이다.
# 문제 풀이
문제 설명에 문제를 푸는 방법이 전부 나와있다.
i, j, k의 의미에 대해서 이해를 한다면 어렵지 않게 문제를 풀 수 있다.
1. 원본 입력 array를 보존해야 한다.
2. commands를 순회하면서 현재의 i, j, k를 구한다.
3. 원본 array를 i~j 까지 슬라이싱하고 정렬한다.
4. 위에서 얻은 리스트의 k번째 수를 결과 리스트에 담는다.
# 코드 작성
def solution(array, commands):
answer = []
for command in commands :
// 현재 command의 i, j, k를 얻는다. -1을 해 주는 이유는 연산의 간편함을 위해.
start, end, index = command[0] - 1, command[1] - 1, command[2] - 1
// 슬라이싱으로 array에서 i~j 까지의 부분 리스트를 얻고 정렬한다.
slice_array = array[start:(end+1)]
slice_array.sort()
// k번째를 의미하는 index의 위치의 요소를 정답 리스트에 추가한다.
answer.append(slice_array[index])
return answer
* 본 문제의 출처는 프로그래머스(https://programmers.co.kr/) 입니다. 문제가 될 시 삭제하겠습니다.
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 코딩테스트 고득점 Kit > H-Index (0) | 2020.03.07 |
---|---|
[프로그래머스] 코딩테스트 고득점 Kit > 가장 큰 수 (0) | 2020.03.07 |
[프로그래머스] 코딩테스트 고득점 Kit > 베스트앨범 (0) | 2019.11.05 |
[프로그래머스] 코딩테스트 고득점 Kit > 위장 (0) | 2019.11.05 |
[프로그래머스] 코딩테스트 고득점 Kit > 전화번호 목록 (0) | 2019.11.05 |