[プログラマー]Lv1[第1ラウンド]ダーツゲーム
プログラマ
Lv.1[第1ラウンド]ダーツゲーム
1.質問
2.解答
while文で文字列を巡りif文で条件をチェック
isdigit()、int()、index slicing、**を利用
3.コード
Lv.1[第1ラウンド]ダーツゲーム
1.質問
input
文字列output
該当文字列に基づいて数値/2倍の等号を計算して返します.2.解答
while文で文字列を巡りif文で条件をチェック
isdigit()、int()、index slicing、**を利用
3.コード
def solution(dartResult):
answer = []
i = 0
while i < len(dartResult):
if dartResult[i].isdigit():
if dartResult[i+1].isdigit() == False:
if dartResult[i+1] == "S":
answer.append(int(dartResult[i]))
i += 1
elif dartResult[i+1] == "D":
answer.append(int(dartResult[i])**2)
i += 1
else:
answer.append(int(dartResult[i])**3)
i += 1
else:
if dartResult[i+2] == "S":
answer.append(int(dartResult[i:i+2]))
i += 2
elif dartResult[i+2] == "D":
answer.append(int(dartResult[i:i+2])**2)
i += 2
else:
answer.append(int(dartResult[i:i+2])**3)
i += 2
elif dartResult[i] == "*":
if len(answer) == 1:
answer[0] = answer[0]*2
else:
answer[-2] = answer[-2]*2
answer[-1] = answer[-1]*2
else:
if len(answer) == 1:
answer[0] = -answer[0]
else:
answer[-1] = -answer[-1]
i += 1
return sum(answer)
Reference
この問題について([プログラマー]Lv1[第1ラウンド]ダーツゲーム), 我々は、より多くの情報をここで見つけました https://velog.io/@anthony16/프로그래머스-Lv.1-1차-다트-게임テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol