728x90
๋ฐ์ํ
"""
์นด์นด์คํก ๊ฒ์๋ณ์ ํ๋ฐ๊ธฐ ์ ๊ท ์๋น์ค๋ก ๋คํธ ๊ฒ์์ ์ถ์ํ๊ธฐ๋ก ํ๋ค.
๋คํธ ๊ฒ์์ ๋คํธํ์ ๋คํธ๋ฅผ ์ธ ์ฐจ๋ก ๋์ ธ ๊ทธ ์ ์์ ํฉ๊ณ๋ก
์ค๋ ฅ์ ๊ฒจ๋ฃจ๋ ๊ฒ์์ผ๋ก, ๋ชจ๋๊ฐ ๊ฐ๋จํ ์ฆ๊ธธ ์ ์๋ค.
๊ฐ ์
์ฌํ ๋ฌด์ง๋ ์ฝ๋ฉ ์ค๋ ฅ์ ์ธ์ ๋ฐ์ ๊ฒ์์ ํต์ฌ ๋ถ๋ถ์ธ
์ ์ ๊ณ์ฐ ๋ก์ง์ ๋งก๊ฒ ๋์๋ค. ๋คํธ ๊ฒ์์ ์ ์ ๊ณ์ฐ ๋ก์ง์ ์๋์ ๊ฐ๋ค.
(์ค๋ต)
"""
def solution(dartResult):
dartResult = list(dartResult + 'E')
answer = [0]
num = ''
for i, v in enumerate(dartResult):
if '0'<= v <= '9':
num += v
elif v in ['S','D','T']:
num = int(num)**(['S','D','T'].index(v)+1)
if dartResult[i+1] == '*':
answer[-1] *= 2
answer.append(num*2)
elif dartResult[i+1] == '#':
answer.append(-num)
else:
answer.append(num)
num = ''
print(answer)
return sum(answer)
"""
S,D,T ๋ค์์ ์ต์
์ ์ฒดํฌํ๋ ๋ก์ง์ด๊ธฐ ๋๋ฌธ์
์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ dartResult์ ๋ง์ง๋ง์ 'E'๋ฅผ ์ถ๊ฐ์์ผ์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ต์
'*'๋ ์ด์ ์ ์์ 2๋ฐฐ๋ฅผ ๊ณฑํด์ฃผ์ด์ผํด์
์ฒซ๋ฒ์งธ์ *์ต์
์ด ๋์ฌ๊ฒ์ ๋๋นํ์ฌ answer์ [0]์ ๋ฃ์ด์ฃผ์๋ค.
dartResult์์ 1๊ธ์์ฉ ๊ฐ์ง๊ณ ์์ ์ซ์๋ฉด num๋ณ์์ ๋ฃ์ด์ฃผ์๋ค.
๋ณ์์ ๋ด๊ธด ๋ฐ์ดํฐ์ ์กฐ๊ฑด์ '์ซ์+[S,D,T]+(์ต์
)'์ด๋ค.
S,D,T๊ฐ ๋์จ๋ค๋ฉด ์ ์๊ณ์ฐ์ ํด๋ ๋๋ค๋ ๋ป์ด๋ค.
๊ทธ๋์ num์ intํ์ผ๋ก ๋ฐ๊พธ๊ณ 1~3์ ๊ณฑ์ ํด์ฃผ์๋ค.
๊ทธ๋ค์ ๋ค์์ ๋์ฌ ๋ฌธ์๋ฅผ ํ์ธํ๋ค.
์ซ์๋ 'E'๋ผ๋ฉด ์ต์
์ด ์๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก num์ ์ ์ํ(answer)์ ๋ฃ์ด์ฃผ์๋ค.
*์ด๋ผ๋ฉด ์ด์ ์ ์์ 2๋ฅผ ๊ณฑํ๊ณ , ํ์ฌ ์ ์์๋ 2๋ฅผ ๊ณฑํด์ ์ ์ํ์ ๋ฃ์ด์ค๋ค.
(์ฌ๊ธฐ์ ์ฒซ๋ฒ์งธ ์ ์์ *๊ฐ ์์ด๋ ์ ์ํ์ 0์ด๋ผ๋ ๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ์๋ค)
#์ด๋ผ๋ฉด ํ์ฌ ์ ์์ -๋ง ๋ถ์ฌ ์ ์ํ์ ๋ฃ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ํ์ ์ ์๊ธฐ์
์ด ๋๋๋ฉด list๋ฅผ ๋ชจ๋ ๋ํด ๋ฆฌํดํ๋ค.
"""
728x90
๋ฐ์ํ
'๐ผ๐ก๐๐ค๐ง๐๐ฉ๐๐ข > ๐๐ง๐ค๐๐ง๐๐ข๐ข๐๐ง๐จ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ํ์๋ฒ(greedy) '์ฒด์ก๋ณต' ํ์ด์ฌ ํ์ด (0) | 2023.02.19 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค '์์ ์ํธ' ํ์ด์ฌ ํ์ด (0) | 2023.02.19 |
ํ๋ก๊ทธ๋๋จธ์ค '์ ํ์์ ํ๋ณํ๊ธฐ' ํ์ด์ฌ ํ์ด + (0) | 2023.02.18 |
ํ๋ก๊ทธ๋๋จธ์ค '๋ฑ์ ๋งค๊ธฐ๊ธฐ' ํ์ด์ฌ ํ์ด (0) | 2023.02.18 |
ํ๋ก๊ทธ๋๋จธ์ค '์์ ์ง๋' ํ์ด์ฌ ํ์ด (0) | 2023.02.16 |
๋๊ธ