[python]削除プログラマーの最小数(lv.1)
最小数を削除
整数の配列を保存し、arrから最小数の配列を削除する関数を返します.解決策を完了してください.ただし、返される配列が空の配列の場合は、配列に-1を入力して返します.たとえばarrが[4,3,2,1]の場合は[4,3,2]を返し、[10]の場合は[1]を返します.
せいげんじょうけん
arrは長さが1より大きい配列である.
インデックスi,jについて、i≠jの場合、arr[i]≠arr[j]である.
I/O例
arrreturn[4,3,2,1][4,3,2][10][-1]
わたしの思いついた考え
💡 条件1:最小の数字を削除する必要があります.ソート->
sort
、reversed
などです.💡 条件2:タイルが空の場合、-1は->
append()
、insert()
などを埋めます.💡 条件3:シナリオが空のシナリオであると判定された場合->
len(s) > 1
マイコード
初回試行(正しいX)
def solution(arr):
if len(arr) > 1:
set(arr)
reversed(arr)
arr.pop()
return arr
else:
set(arr)
reversed(arr)
arr.pop()
arr.append(-1)
return arr
と書いてありました.はい.これはただ.😅 ここ🗑 入れて
setを書く理由は最後の制限を見て、重複を解消すべきだと思ったからです.
removeとinsertでもう一度ううう😂
2回目の試み(正解O)
def solution(arr):
if len(arr) > 1:
arr.remove(min(arr))
return arr
else:
arr.remove(min(arr))
arr.insert(0,-1)
return arr
print(solution([4,3,2,1]))
print(solution([10]))
でも[3.2.1.1.1.1]なら一つだけ消すしかないじゃあsetを書きましょうか?そう思うよtestはこの程度になるように作成されています.
他人を解く
一番いいコードを持ってきます.また、ここからは、以前は-1を条件にしていなかった問題なので、コードについては、この点を参照してください.
def rm_small(mylist):
return [i for i in mylist if i > min(mylist)]
my_list = [4,3,2,1]
print("결과 {} ".format(rm_small(my_list)))
コードはリストネストを使用します.リストの「mylist」を1つ1つiで表し、最小値を得るために
i > min(mylist)
を使用して、最高値よりも大きい子供を返します.しかし、このコードには直感的に理解できない欠点があり、for文の配列長が長ければ長いほど、必要な時間が長くなる.
正しいコード
私が初めて試したように、popを書く他のコードも見ます.
def rm_small(mylist):
mylisft.pop(mylist.index(min(mylist)))
return mylist
my_list = [4,3,2,1]
print("결과 {} ".format(rm_small(my_list)))
Pythonでindex関数はどんな用途がありますか?index(x)関数がリスト内のx値を返すときのxの位置値.
私たちはまず
min
で最小値を検索し、次にindex
で最小値を検索し、pop()に入れて、特定の値をクリアする関数を完成しました.これは、
pop
、index
、insert
、remove
などの使用方法を理解するための基本的な例です.Reference
この問題について([python]削除プログラマーの最小数(lv.1)), 我々は、より多くの情報をここで見つけました https://velog.io/@cha-suyeon/Python-프로그래머스-제일-작은-수-제거하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol