[プログラマー]宝くじの最高と最低python
質問リンク
https://programmers.co.kr/learn/courses/30/lessons/77484
問題の概要
宝くじを買ってきた弟は宝くじに落書きした.自分の最低順位と最高順位を知りたいです.
落書きで読めない数字はゼロと表示されます.6つとも正解で1位が1つも答えられなかったり、1つが正解で6位だったり
ex)私が選んだ数字:1 4 7 0 19(数字はソートされていないかもしれません)
宝くじ番号:1 3 8 19 20 25
->正解数:2個=>最低5位、最高3位
最初の試み-私のコード
次に、例外を考慮して、返す答え配列に追加します.
これは私がプログラマーを使うのは初めてです.問題を解くと、よく解けたコードが見えます.
見終わった後、私のコードは本当に散らかっている魔法のように見えます.
ドアの中で0を数えないで、count()関数を使ったほうがいいです.そんなに汚い計算は必要なく、数に合致する等号を配列として定義すればよい.これにより、簡単なインデックスアクセスで簡潔なコードを記述することができます. の答えを使わずに、直接数字を返すと配列に戻ることができますか? 2回目の試み-私が書き直したコード
そして私はまたよく書かれたコードを見ました.for j in win nums:if~::同じ+=1部分
ifi in win nums:ison+=1と書いてあります.
WOOKTEではなくPythonを勉強するようですね
整理する
count関数を使用してリストの要素数を計算します. アレイの等量の事前定義 を使用する. ifx in list:使用可能!
https://programmers.co.kr/learn/courses/30/lessons/77484
問題の概要
宝くじを買ってきた弟は宝くじに落書きした.自分の最低順位と最高順位を知りたいです.
落書きで読めない数字はゼロと表示されます.6つとも正解で1位が1つも答えられなかったり、1つが正解で6位だったり
ex)私が選んだ数字:1 4 7 0 19(数字はソートされていないかもしれません)
宝くじ番号:1 3 8 19 20 25
->正解数:2個=>最低5位、最高3位
最初の試み-私のコード
def solution(lottos, win_nums):
Sum = 0
zero = 0
for i in lottos:
if(i==0):
zero+=1
continue
for j in win_nums:
if(i==j):
Sum+=1
answer = []
if(Sum==0):
answer.append(6)
if(zero==0):
answer.insert(0,6)
else:
answer.insert(0,7-zero)
return answer
answer.append(7-Sum)
answer.insert(0, 7-Sum-zero)
return answer
コードの説明:ドアの周りに0個の数を数えて、当選番号と同じようにいくつかの数を数えます.次に、例外を考慮して、返す答え配列に追加します.
これは私がプログラマーを使うのは初めてです.問題を解くと、よく解けたコードが見えます.
見終わった後、私のコードは本当に散らかっている魔法のように見えます.
ドアの中で0を数えないで、count()関数を使ったほうがいいです.
def solution(lottos, win_nums):
same = 0
zero = lottos.count(0)
rank = [6, 6, 5, 4, 3, 2, 1]
for i in lottos:
for j in win_nums:
if(i==j):
same+=1
return rank[same+zero],rank[same]
上記のようにコードを書き直しました.そして私はまたよく書かれたコードを見ました.for j in win nums:if~::同じ+=1部分
ifi in win nums:ison+=1と書いてあります.
WOOKTEではなくPythonを勉強するようですね
整理する
count関数を使用して
Reference
この問題について([プログラマー]宝くじの最高と最低python), 我々は、より多くの情報をここで見つけました https://velog.io/@jerry_bak/프로그래머스-로또의-최고-순위와-최저-순위-pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol