プログラマスタック/キュー3.機能開発
2104 ワード
質問リンク
以上のように、進捗が100を超えると導入できますが、最上位の機能が完了してこそ導入できる問題です.
解題方式はprogress配列が存在する前にwhileゲートを回すことでpogress配列の長さに従って速度を増やし,時間が経つにつれて進捗が増加することを示す.
方法は、progressの最初の要素が100より大きい場合、その要素をポップアップし、length変数(どのプロセスを配置するかを示す変数)とindexをそれぞれ1増やし、100を超えないprogressに遭遇した場合、そのlengthをresponse listに追加することです.
想像していた真ん中に1つの要素があるときよりも多くのエラーが発生し、コードも乱雑になってしまうのは簡単な問題ですが、時間がかかりました...イライラしているときほど、効率的な方法を探しています.
以上のように、進捗が100を超えると導入できますが、最上位の機能が完了してこそ導入できる問題です.
私が解読したコード
def solution(progresses, speeds):
answer =[]
index =0
length = 0
while progresses:
# print(progresses)
for i in range(len(progresses)):
progresses[i]+=speeds[i]
if len(progresses)==1:
progresses.pop()
answer.append(1)
break
while progresses[0]>=100:
if len(progresses)==1:
length+=1
progresses.pop(0)
answer.append(length)
length=0
break
progresses.pop(0)
speeds.pop(0)
length +=1
index +=1
if (length > 0):
answer.append(length)
length =0
index =0
print(answer)
print(answer)
return answer
solution([95, 90, 99, 99, 80, 99],[1, 1, 1, 1, 1, 1])
コードが非常に長い...汚くてたまらない!!!解題方式はprogress配列が存在する前にwhileゲートを回すことでpogress配列の長さに従って速度を増やし,時間が経つにつれて進捗が増加することを示す.
方法は、progressの最初の要素が100より大きい場合、その要素をポップアップし、length変数(どのプロセスを配置するかを示す変数)とindexをそれぞれ1増やし、100を超えないprogressに遭遇した場合、そのlengthをresponse listに追加することです.
想像していた真ん中に1つの要素があるときよりも多くのエラーが発生し、コードも乱雑になってしまうのは簡単な問題ですが、時間がかかりました...イライラしているときほど、効率的な方法を探しています.
模範文
def solution(progresses, speeds):
Q=[]
for p, s in zip(progresses, speeds):
if len(Q)==0 or Q[-1][0]<-((p-100)//s):
Q.append([-((p-100)//s),1])
else:
Q[-1][1]+=1
return [q[1] for q in Q]
zip関数を使用しました!ああ!問題を解くときにzip関数を使うとは思わなかった.zip関数を除いて、次の式...簡単に解けたみたいどんなに解いても、そうはいかないけど、もっと简単にできるように顽张りましょう.Reference
この問題について(プログラマスタック/キュー3.機能開発), 我々は、より多くの情報をここで見つけました https://velog.io/@jhlsuper/프로그래머스-스택큐-3.기능개발-파이썬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol