본문 바로가기
Algorithm/Programmers

[프로그래머스] 코딩테스트 고득점 Kit > K번째수

by du.it.ddu 2020. 3. 7.
반응형

# 문제

# 문제 접근

문제 설명이 곧 풀이 방법이다.

문제만 잘 읽으면 되고, 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/) 입니다. 문제가 될 시 삭제하겠습니다.

반응형