模擬試験(プログラマー)
6769 ワード
リンクテキスト
数学は数学を放棄する人の略語である.「囚人3人組」は模擬試験で数学の問題を全部撮りたいと思っている.最初の問題から最後の問題まで、執胞子は以下の通りである.
1番捕手の撮り方:1,2,3,4,5,1,2,3,4,5...
2番捕手の撮り方:2、1、2、3、2、4、2、5、2、2、3、2、4、2、5...
3番捕手の撮り方:3,3,1,1,2,2,4,5,5,3,3,1,2,2,4,5,5...
最初の問題から最後の問題までの正解が順番に並んでいる場合は、最も多くの質問に答えた人が誰なのか、答えを並べて返すように解答関数を書いてください.
1、2、3回とも一定のパターンで繰り返す.したがって,ルールを見つけてこれらのルールに従えば,問題を簡単に解決できる.
問題を理解する
数学は数学を放棄する人の略語である.「囚人3人組」は模擬試験で数学の問題を全部撮りたいと思っている.最初の問題から最後の問題まで、執胞子は以下の通りである.
1番捕手の撮り方:1,2,3,4,5,1,2,3,4,5...
2番捕手の撮り方:2、1、2、3、2、4、2、5、2、2、3、2、4、2、5...
3番捕手の撮り方:3,3,1,1,2,2,4,5,5,3,3,1,2,2,4,5,5...
最初の問題から最後の問題までの正解が順番に並んでいる場合は、最も多くの質問に答えた人が誰なのか、答えを並べて返すように解答関数を書いてください.
私の理解
1、2、3回とも一定のパターンで繰り返す.したがって,ルールを見つけてこれらのルールに従えば,問題を簡単に解決できる.
Python
def solution(answers):
a,b,c =0 ,0,0
a_ans =[1,2,3,4,5]
b_ans =[2,1,2,3,2,4,2,5]
c_ans =[3,3,1,1,2,2,4,4,5,5]
for i in range(len(answers)):
a1,a2,a3 = i%5,i%8,i%10
if a_ans[a1] == answers[i]:
a+=1
if b_ans[a2] == answers[i]:
b+=1
if c_ans[a3] == answers[i]:
c+=1
res =[]
if max(a,b,c) == a:
res.append(1)
if max(a,b,c) == b:
res.append(2)
if max(a,b,c) == c:
res.append(3)
return res
maxで最高価格を見つければいいです.Reference
この問題について(模擬試験(プログラマー)), 我々は、より多くの情報をここで見つけました https://velog.io/@happyfran67/모의고사프로그래머스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol