[プログラマー]-K番目の数字

1109 ワード

問題の説明


配列のi番からj番までを切り取って並べ替えると、k番目の数字を求めようとします.
例えばarrayが[1,5,2,6,3,7,4],i=2,j=5,k=3の場合
arrayの2番目から5番目の場合は[5,2,6,3].
1の配列を並べ替えると[2,3,5,6].
2からの配列の3番目の数字は5です.
配列配列、[i、j、k]を要素とする2次元配列コマンドをパラメータとして与える場合は、commandsのすべての要素に前述の演算を適用した結果を配列に戻してsolution関数を作成します.
問題を解く
思考過程.
1.forゲートを回し、commandsの要素を変数に入力します.
2.配列を変数でスライスして並べ替えます.次にk番目のインデックス値を保存します.
注意事項
  • 列のインデックス番号はゼロから始まり、考慮する必要があります.
  • 問題を解く

    answer=[]
    def solution(array, commands):
        for t in commands:
             i=t[0]
             j=t[1]
             k=t[2]   
             
            ##i,j,k=t        
            
            #i~j 번째 배열로 자르기
            slice=array[i-1:j]
            
            #정렬
            sortedarray=sorted(slice)
            
            answer.append(sortedarray[k-1]) 
        
        return answer
    改善点
  • の答えの配列を関数の
  • に入れます.
  • i、j、kは1つの定義ではなく、クリーンコードを指すために一度に格納される
    i,j,k=t
  • の不要な変数を減らします.
    answer.append(配列[i-1:j])[k-1])の行は終了します.