-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprogrammers_dart_game.py
More file actions
53 lines (47 loc) Β· 2.68 KB
/
Copy pathprogrammers_dart_game.py
File metadata and controls
53 lines (47 loc) Β· 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"""
λ€νΈ κ²μ
μΉ΄μΉ΄μ€ν‘μ λ¬ λ€ λ²μ§Έ λ³! μ¬μ¬ν λ? μΉ΄μΉ΄μ€ν‘ κ²μλ³~
Game Star
μΉ΄μΉ΄μ€ν‘ κ²μλ³μ νλ°κΈ° μ κ· μλΉμ€λ‘ λ€νΈ κ²μμ μΆμνκΈ°λ‘ νλ€. λ€νΈ κ²μμ λ€νΈνμ λ€νΈλ₯Ό μΈ μ°¨λ‘ λμ Έ κ·Έ μ μμ ν©κ³λ‘ μ€λ ₯μ 겨루λ κ²μμΌλ‘, λͺ¨λκ° κ°λ¨ν μ¦κΈΈ μ μλ€.
κ° μ
μ¬ν 무μ§λ μ½λ© μ€λ ₯μ μΈμ λ°μ κ²μμ ν΅μ¬ λΆλΆμΈ μ μ κ³μ° λ‘μ§μ λ§‘κ² λμλ€. λ€νΈ κ²μμ μ μ κ³μ° λ‘μ§μ μλμ κ°λ€.
λ€νΈ κ²μμ μ΄ 3λ²μ κΈ°νλ‘ κ΅¬μ±λλ€.
κ° κΈ°νλ§λ€ μ»μ μ μλ μ μλ 0μ μμ 10μ κΉμ§μ΄λ€.
μ μμ ν¨κ» Single(S), Double(D), Triple(T) μμμ΄ μ‘΄μ¬νκ³ κ° μμ λΉμ²¨ μ μ μμμ 1μ κ³±, 2μ κ³±, 3μ κ³± (μ μ1 , μ μ2 , μ μ3 )μΌλ‘ κ³μ°λλ€.
μ΅μ
μΌλ‘ μ€νμ(*) , μμ°¨μ(#)μ΄ μ‘΄μ¬νλ©° μ€νμ(*) λΉμ²¨ μ ν΄λΉ μ μμ λ°λ‘ μ μ μ»μ μ μλ₯Ό κ° 2λ°°λ‘ λ§λ λ€. μμ°¨μ(#) λΉμ²¨ μ ν΄λΉ μ μλ λ§μ΄λμ€λλ€.
μ€νμ(*)μ 첫 λ²μ§Έ κΈ°νμμλ λμ¬ μ μλ€. μ΄ κ²½μ° μ²« λ²μ§Έ μ€νμ(*)μ μ μλ§ 2λ°°κ° λλ€. (μμ 4λ² μ°Έκ³ )
μ€νμ(*)μ ν¨κ³Όλ λ€λ₯Έ μ€νμ(*)μ ν¨κ³Όμ μ€μ²©λ μ μλ€. μ΄ κ²½μ° μ€μ²©λ μ€νμ(*) μ μλ 4λ°°κ° λλ€. (μμ 4λ² μ°Έκ³ )
μ€νμ(*)μ ν¨κ³Όλ μμ°¨μ(#)μ ν¨κ³Όμ μ€μ²©λ μ μλ€. μ΄ κ²½μ° μ€μ²©λ μμ°¨μ(#)μ μ μλ -2λ°°κ° λλ€. (μμ 5λ² μ°Έκ³ )
Single(S), Double(D), Triple(T)μ μ μλ§λ€ νλμ© μ‘΄μ¬νλ€.
μ€νμ(*), μμ°¨μ(#)μ μ μλ§λ€ λ μ€ νλλ§ μ‘΄μ¬ν μ μμΌλ©°, μ‘΄μ¬νμ§ μμ μλ μλ€.
0~10μ μ μμ λ¬Έμ S, D, T, *, #λ‘ κ΅¬μ±λ λ¬Έμμ΄μ΄ μ
λ ₯λ μ μ΄μ μλ₯Ό λ°ννλ ν¨μλ₯Ό μμ±νλΌ.
μ
λ ₯ νμ
"μ μ|보λμ€|[μ΅μ
]"μΌλ‘ μ΄λ£¨μ΄μ§ λ¬Έμμ΄ 3μΈνΈ.
μ) 1S2D*3T
μ μλ 0μμ 10 μ¬μ΄μ μ μμ΄λ€.
보λμ€λ S, D, T μ€ νλμ΄λ€.
μ΅μ μ *μ΄λ # μ€ νλμ΄λ©°, μμ μλ μλ€.
μΆλ ₯ νμ
3λ²μ κΈ°νμμ μ»μ μ μ ν©κ³μ ν΄λΉνλ μ μκ°μ μΆλ ₯νλ€.
μ) 37
"""
import re
def solution(dartResult):
answer = 0
parts = re.findall(r'(\d+)([SDT])([*#]?)', dartResult)
scores = []
for part in parts:
score, bonus, option = part
score = int(score)
if bonus == 'D':
score **= 2
elif bonus == 'T':
score **= 3
if option == '*':
if scores:
scores[-1] *= 2
score *= 2
elif option == '#':
score *= -1
scores.append(score)
answer = sum(scores)
return answer