[Programmers]-ダーツゲーム
12141 ワード
1. Problem 📃
https://programmers.co.kr/learn/courses/30/lessons/17682
次の問題は、与えられた条件に基づいて結果値をエクスポートすることです.
2. Logic 👨🏫
3. Code 💻
1.私が解いたパスワード
def solution(dartResult):
answer = 0
index = 0
tmp = []
for i, v in enumerate(dartResult):
if (v == 'S' or v == 'D' or v == 'T'):
if v == 'S':
tmp.append(pow(int(dartResult[index:i]), 1))
elif v == 'D':
tmp.append(pow(int(dartResult[index:i]), 2))
elif v == 'T':
tmp.append(pow(int(dartResult[index:i]), 3))
index = i + 1
if v == '*':
tmp[len(tmp)-1] *= 2
if len(tmp) > 1 and tmp[len(tmp)-2] in tmp:
tmp[len(tmp)-2] *= 2
index = i + 1
if v == '#':
tmp[len(tmp)-1] *= -1
index = i + 1
answer = sum(tmp)
return answer
2.他人が解いたパスワード
import re
def solution(dartResult):
bonus = {'S' : 1, 'D' : 2, 'T' : 3}
option = {'' : 1, '*' : 2, '#' : -1}
p = re.compile('(\d+)([SDT])([*#]?)')
dart = p.findall(dartResult)
for i in range(len(dart)):
if dart[i][2] == '*' and i > 0:
dart[i-1] *= 2
dart[i] = int(dart[i][0]) ** bonus[dart[i][1]] * option[dart[i][2]]
answer = sum(dart)
return answer
4. Feedback 📚
他の人がどのように解いたのか調べた結果、きれいに解いた人の中で、正規表現で解決したコードに触れました.だから私も時間をかけて正規表現を知りたいです.
1.reモジュール
-Phythonは、re(正規表現の略)モジュールを提供し、正規表現をサポートします.reモジュールはPythonのインストール時に自動的にインストールされる基本ライブラリで、使用方法は以下の通りです.import re
p = re.compile('ab*')
Reference
この問題について([Programmers]-ダーツゲーム), 我々は、より多くの情報をここで見つけました
https://velog.io/@odh0112/Programmers-다트-게임
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def solution(dartResult):
answer = 0
index = 0
tmp = []
for i, v in enumerate(dartResult):
if (v == 'S' or v == 'D' or v == 'T'):
if v == 'S':
tmp.append(pow(int(dartResult[index:i]), 1))
elif v == 'D':
tmp.append(pow(int(dartResult[index:i]), 2))
elif v == 'T':
tmp.append(pow(int(dartResult[index:i]), 3))
index = i + 1
if v == '*':
tmp[len(tmp)-1] *= 2
if len(tmp) > 1 and tmp[len(tmp)-2] in tmp:
tmp[len(tmp)-2] *= 2
index = i + 1
if v == '#':
tmp[len(tmp)-1] *= -1
index = i + 1
answer = sum(tmp)
return answer
import re
def solution(dartResult):
bonus = {'S' : 1, 'D' : 2, 'T' : 3}
option = {'' : 1, '*' : 2, '#' : -1}
p = re.compile('(\d+)([SDT])([*#]?)')
dart = p.findall(dartResult)
for i in range(len(dart)):
if dart[i][2] == '*' and i > 0:
dart[i-1] *= 2
dart[i] = int(dart[i][0]) ** bonus[dart[i][1]] * option[dart[i][2]]
answer = sum(dart)
return answer
他の人がどのように解いたのか調べた結果、きれいに解いた人の中で、正規表現で解決したコードに触れました.だから私も時間をかけて正規表現を知りたいです.
1.reモジュール
-Phythonは、re(正規表現の略)モジュールを提供し、正規表現をサポートします.reモジュールはPythonのインストール時に自動的にインストールされる基本ライブラリで、使用方法は以下の通りです.
import re
p = re.compile('ab*')
Reference
この問題について([Programmers]-ダーツゲーム), 我々は、より多くの情報をここで見つけました https://velog.io/@odh0112/Programmers-다트-게임テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol