Algorithm/programmer/ソート/level 1/K番号(Python使用)


📖質問する



📝解法

  • コマンドのi,j,kを抽出します.
  • アレイのiからjを切り取り、新しいアレイを形成する.
  • 2号が作成した新しい配列をソートします.
  • 新しく並べられたk個の数字を正解リストに入れます.
  • パスワード

    def solution(array, commands):
        answer = list()
        for ijk in commands:
            # 1. commands에 있는 i, j, k 를 뽑아낸다.
            i = ijk[0] - 1
            j = ijk[1]
            k = ijk[2] - 1
            
            # 2. 배열 array의 i번째부터 j번째까지 잘라서 새로운 배열을 만든다.
            new_arr = array[i:j]
            # 3. 2번에서 만든 새로운 배열을 정렬한다.
            new_arr.sort()
            
            # 4. 새로운 배열의 k번째 수를 정답 리스트에 넣는다.
            answer.append(new_arr[k])
        
        return answer

    💡新しい認識の文法


    for文から2 Dリストの値を一度に取り出したい場合は
  • の問題において、コマンドからi,j,kが抽出されると、
  • .
  • 第1の方法
  • for command in commands:
        i, j, k = command
    i==command[0],j==command[1],k==command[2].
  • 第2の方法-より簡潔な方法!
  • for i,j,k in commands:

    💡 コード作成が簡単

  • 解答過程2号、3号、4号は1行のコードで書くことができます!
  • を減らす前に!
  • # 2. 배열 array의 i번째부터 j번째까지 잘라서 새로운 배열을 만든다.
    new_arr = array[i:j]
    # 3. 2번에서 만든 새로운 배열을 정렬한다.
    new_arr.sort()
            
     # 4. 새로운 배열의 k번째 수를 정답 리스트에 넣는다.
    answer.append(new_arr[k])
  • 減少後
  • answer.append(list(sorted(array[i:j]))[k])
    新しい変数に割り当てる必要がなく、コードもより簡潔になります~!