[99클럽 코테스터디 2기][Python/비기너] 일곱번째 문제 : K번째수

최민지·2024년 5월 26일
0
post-thumbnail

오늘의 주제는 정렬 !
<K번째 수>

문제

입력과 출력

코드

def solution(array, commands):
    #배열 자르기
    answer=[]
    for i in range(len(commands)):
        emp=array[commands[i][0]-1:commands[i][1]]
        emp.sort()
        answer.append(emp[commands[i][2]-1])
    return answer

알고리즘
commands의 길이만큼으로 for문을 구성하고, commands 배열속 배열은 i,j,k로 구성되어있다.
그러므로 emp라는 빈 배열에 i(i번째 수이지만 배열 인덱스로 넣어야하므로 -1)번째 수부터 j번째수까지 잘라
담아준다.
emp 배열을 정렬해준 뒤, emp의 k번째 수를 answer에 담아준다.

시행착오

-> 오류난 코드

def solution(array, commands):
    #배열 자르기
    i=commands[0][0]
    j=commands[1]
    k=commands[2]
    print(i)
    
    answer = []
    empty=[]
    for a in range(i,j+1):
        empty.append(array[a])
    
    answer.append(empty[k-1])
    
    return answer

일단 문제를 보고 이해하기 위해 바로 작성한 코드였다. 실행시켜보니까 오류였고 다시 검토해보니 인덱스도 안맞고 굉장히 난잡하다고 생각해서,,
첫번째 과정은 문제를 이해했다 생각하고 이를 토대로 다시 정리하여 작성하였다.

리스트 슬라이싱 개념을 다시 정리해야 다음에도 인덱스를 헷갈리지 않고 쓸 수 있을 것 같았다!

Something new I learned

  • list 슬라이싱
    array[n:m]
    n부터 m-1까지 슬라이싱된다.
profile
공부..일기....

0개의 댓글