[プログラマー]kビット数-python


▼▼▼問題説明


配列のi番からj番までを切り取って並べ替えると、k番目の数字を求めようとします.
例えばarrayが[1,5,2,6,3,7,4],i=2,j=5,k=3の場合
  • 配列の2番目から5番目の場合は[5,2,6,3]である.
  • 1の配列を並べ替えると[2,3,5,6].
  • 2の配列の3番目の数字は5です.
  • 配列配列、[i、j、k]を要素とする2次元配列コマンドをパラメータとして与える場合は、commandsのすべての要素に前述の演算を適用した結果を配列に戻してsolution関数を作成します.

    ▼▼▼制限

  • arrayの長さは100を超えない.
  • arrayの各要素は1または100未満です.
  • コマンドの長さは50を超えません.
  • コマンドの各要素の長さは3です.
  • 🎈 I/O例



    [1,5,2,6,3,7,4]を2番目から5番目に切り取り、並べ替えます.[2,3,5,6]の3番目の数字は5です.
    [1,5,2,6,3,7,4]を4番目から4番目に切り取り、並べ替えます.[6]の最初の数字は6である.
    [1,5,2,6,3,7,4]最初から7番目にカット[1.2.3.4.5.6.7]の3番目の数字は3です.

    👩‍💻 マイコード


    今回の質問はレベル1がとても簡単です!
    ブログに書くかどうか考えて、解決した問題を全部記録したいので書くことにしました.ほほほ
    私が体現している方法はこうです.
  • pop()を使用するために、コマンド配列を反転します.(逐次抽出結果)
  • 反転コマンドでは、pop()を使用して要素を1つずつ取り出し、所定の長さで切断します.
  • sort()を使用して、クリップされた
  • 配列をソートし、k番目の要素を結果配列に入れます.
  • def solution(array, commands):
        result = []
        commands.reverse()
        while len(commands) != 0:
            command = commands.pop()
            print(command)
            split_arr = array[command[0]-1:command[1]]
            split_arr.sort()
            result.append(split_arr[command[2]-1])
        return result