<[1์ฐจ] ๋คํธ ๊ฒ์>
๋ฌธ์ (์ถ์ฒ: https://school.programmers.co.kr/learn/courses/30/lessons/17682)
๋ฌธ์ ํ์ด
- my solution
def solution(dartResult):
temp=[]
for i in range(len(dartResult)):
x=dartResult[i]
if(x.isdigit()): #์ซ์ ํ๋ณ
if(x=="1" and dartResult[i+1]=="0"): #10์ธ ๊ฒฝ์ฐ
temp.append(10)
elif(x=="0" and i!=0):
if(dartResult[i-1]=="1"):
pass
else: #0์ธ ๊ฒฝ์ฐ
temp.append(0)
else:
temp.append(int(x))
if(x=="S"): #Single
pass
if(x=="D"): #Double
temp[-1]*=temp[-1]
if(x=="T"): #Triple
temp[-1]*=temp[-1]*temp[-1]
if(x=="*"): #์คํ์
if(len(temp)>1):
temp[-2]*=2
temp[-1]*=2
else: #์คํ์ - ์ฒซ๋ฒ์งธ ๊ธฐํ
temp[-1]*=2
if(x=="#"): #์์ฐจ์
temp[-1]*=-1
return sum(temp)
๋จ์ ๋ฐ๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์ ํ์ฉํ์ฌ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์๋ค!
1) ๋ฐ๋ณต๋ฌธ์ ํตํ์ฌ dartResult ๋ฆฌ์คํธ ์ํ
1-1) ๊ฐ์ด ์ซ์์ธ ๊ฒฝ์ฐ
1-1-1) 1 ๋ค์ 0์ธ ๊ฒฝ์ฐ: ๋ฆฌ์คํธ์ 10 ์ถ๊ฐ
1-1-2) ๋งจ ์ ๊ฐ์ด ์๋๊ณ 0์ธ ๊ฒฝ์ฐ
1-1-2-1) ์์ด 1์ด๋ฉด: 1-1-1)์์ 10์ ์ถ๊ฐํ์ผ๋ฏ๋ก pass
1-1-2-2) ์์ด ์ด ์๋๋ฉด: ๋จ์ ์ ์๊ฐ 0์ด๋ฏ๋ก ๋ฆฌ์คํธ์ 0 ์ถ๊ฐ
1-1-3) ๊ทธ ์ธ ๊ฒฝ์ฐ: ๋ฆฌ์คํธ์ ์ ์ ๊ฐ ์ถ๊ฐ
1-2) S์ธ ๊ฒฝ์ฐ: Single - 1 ์ ๊ณฑ์ ์๋ ๊ฐ ๊ทธ๋๋ก์ด๋ฏ๋ก pass
1-3) D์ธ ๊ฒฝ์ฐ: Double - 2 ์ ๊ณฑ
1-4) T์ธ ๊ฒฝ์ฐ: Triple - 3 ์ ๊ณฑ
1-5) *์ธ ๊ฒฝ์ฐ: ์คํ์
1-5-1) ์ฒซ ๋ฒ์งธ ๊ธฐํ์์ ๋์จ ๊ฒ์ด ์๋ ๊ฒฝ์ฐ: ํด๋น ์ ์์ ๋ฐ๋ก ์ ์ ์ป์ ์ ์ ๊ฐ 2๋ฐฐ
1-5-2) ์ฒซ ๋ฒ์งธ ๊ธฐํ์์ ๋์จ ๊ฒฝ์ฐ: ์ฒซ ๋ฒ์งธ ์ ์๋ง 2๋ฐฐ
1-6) #์ธ ๊ฒฝ์ฐ: ์์ฐจ์ - ํด๋น ์ ์ ๋ง์ด๋์ค
์ด๋ ๊ฒ ์ฝ๋๋ฅผ ๊ตฌํํ ๊ฒฝ์ฐ ์คํ์๊ณผ ์์ฐจ์ ํจ๊ณผ์ ์ค์ฒฉ๋๋ค๋ ์กฐ๊ฑด์ ๊ฒฝ์ฐ๋ ๋ฐ๋ก ๊ตฌํํ ํ์๊ฐ ์๋ค.
๋ํ ์คํ์๊ณผ ์์ฐจ์์ด ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ๋ ๋ฐ๋ก ๊ตฌํํ ํ์๊ฐ ์๋ค.
์ด ๋ฌธ์ ์ ๊ฒฝ์ฐ ์ ์๊ฐ 10์ ์ผ ๋ ๋ฐ๋ก ๊ณ ๋ คํ์ฌ ์ฝ๋๋ฅผ ๊ตฌํํด์ผ ํ๋ค๋ ์ ์ด ๋์น๊ธฐ ์ฌ์ด ๋ถ๋ถ์ด์๋ค๊ณ ์๊ฐํ๋ค.
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges