[プログラマレベル1]-区切られた数値配列


2022/03/17


問題の説明


arrayの各要素で、昇順で配列された配列の係数で区切られた値を返す関数を作成します.
要素が除数で区切られていない場合は、配列に-1を入れて返します.

せいげんじょうけん

  • arrは自然数を含む配列である.
  • 整数i,jについて、i≠jの場合、arr[i]≠arr[j]である.
  • 除数は自然数です.
  • arrayは、長さが1より大きい配列である.
  • マイコード(成功)

    def solution(arr, divisor):
        answer = []
        for i in arr:
            if i%divisor==0:
                answer.append(i) 
        answer.sort()
        if answer==[]:
            answer.append(-1)
        return answer

    結果



    他者コード

    def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1]

    に感銘を与える


    コードを作るときは複雑すぎて長すぎると思います.他人のコードは以前に学んだ論理演算で解いたものであることがわかる.論理演算を復習して、orが真であればその値を呼び出し、偽(0)であれば呼び出し後であると判断します.for文を1行に書き、n値を直接リストに入れることができ、リスト値がfalse(0)の場合、呼び出しorバックドア職人を特定することができる[1].次の問題は論理演算で解く練習をしなければならない.

    コンセプト


    リスト名.sort():ソースファイルの整列と変更
    ソート(リスト名):元のファイルが保持され、ソートされた値が返されます.
    問題のソース