๐ฃ ๋ฌธ์ ์ดํด
๋ฌธ์์ด ์ฒ๋ฆฌ๋ฅผ ํ์๋ก ํ๋ ๋ฌธ์ ์ด๋ค. ์นด์นด์ค์์๋ ์ ๋ง ๋น ์ง ์ ์๋๋ด...
์ด 3๋ฒ์ ๊ฒ์์ด ์๊ณ ๊ฐ ๊ฒ์๋ง๋ค 0~10์ ์ ์ ์ํ ์ ์, S/D/T๋ก ๊ฐ 1์ ๊ณฑ, 2์ ๊ณฑ 3์ ๊ณฑ์ ํ๋ ์์ญ ์ ์, ์ต์ ์ผ๋ก * ๋๋ #์ด ์ฃผ์ด์ง๋ค.
*๋ ํด๋น ์ ์์ ๋ฐ๋ก ์ ์ ์ป์ ์ ์๋ฅผ ๊ฐ 2๋ฐฐ๋ก ๋ง๋ค๊ณ , #๋ ํด๋น ์ ์๋ฅผ ๋ง์ด๋์ค๋ก ๋ง๋ ๋ค.
์ฒซ ๋ฒ์งธ ๊ธฐํ์์ *๊ฐ ๋์จ ๊ฒฝ์ฐ, ์ด์ ์ ์๊ฐ ์์ผ๋ฏ๋ก ํด๋น ์ ์๋ง 2๋ฐฐ๊ฐ ๋๋ค.
์ ๊ทํํ์์ ์ฌ์ฉํด์ ์ธ๊ธ๋ ๊ท์น์ ๋ฐ๋ผ ๋ฌธ์์ด์ ๋๋ ์ฒ๋ฆฌํ๋ค.
๐ญ ํ์ด ๊ณผ์
์์ฑ ์ธ์ด: Python3
import re
def solution(t_dartresult):
score_list = [1, 1, 1]
groups = re.findall(r'\d{1,2}[SDT][*#]?', t_dartresult)
for index, group in enumerate(groups):
if group[-1] == '*':
score_list[index] *= 2
groups[index] = groups[index][:-1]
if index != 0:
score_list[index - 1] *= 2
elif group[-1] == '#':
score_list[index] *= -1
groups[index] = groups[index][:-1]
for index, group in enumerate(groups):
if group[-1] == 'S':
score_list[index] *= int(group[:-1]) ** 1
elif group[-1] == 'D':
score_list[index] *= int(group[:-1]) ** 2
elif group[-1] == 'T':
score_list[index] *= int(group[:-1]) ** 3
return sum(score_list)
๐ ๋ฐฐ์ด ์
์ ๊ทํํ์ ๋ชจ๋ re(Regular Expression) ๋ฅผ ์ด์ฉํ๋, ์ ๋ง ์ด๋ ต์ง ์๊ฒ ๋ฌธ์์ด ์ฒ๋ฆฌ๋ฅผ ํ ์ ์์๋ค.
๋ฌผ๋ก ๋ ์งง๊ณ ๊ฐ๊ฒฐํ๊ฒ ๋ดํฌ์์ ์ฌ์ฉํ ์์ค๋ค๋ ์ฐพ์ ์ ์์์ง๋ง,,
์ง๊ทนํ ์ฃผ๊ด์ ์ธ ์๊ฐ์ผ๋ก ๋๋ฌด ์ค์ธ ๊ฑด ์คํ๋ ค ์ง๊ด์ ์ด์ง ๋ชปํ๊ฒ ๋ง๋๋ ๋ฏํ ๋๋์ด๋ค.
์ข ๋ ์ฐ์ตํด์ ๋ฌธ์์ด ์ฒ๋ฆฌ ๊ด๋ จ ๋ชจ๋๊ณผ ํจ์๋ค์ ์ ์ฌ์ฉํ๋ฉด ๋ ์ฌ๋ฐ๊ฒ ํ ์ ์์ ๋ฏ!!!!โ๏ธโ๏ธโ๏ธ
'Problem_Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[2020 KAKAO BLIND RECRUITMENT] ๋ฌธ์์ด ์์ถ (0) | 2020.09.01 |
---|---|
[BOJ] ๋ฐฑ์ค 7576 ํ ๋งํ / ๋๋น ์ฐ์ ํ์(BFS) (0) | 2020.08.31 |
[2019 KAKAO BLIND RECRUITMENT] ์คํจ์จ (0) | 2020.08.29 |
[2018 KAKAO BLIND RECRUITMENT] ๋น๋ฐ์ง๋ (0) | 2020.08.28 |
[2020 ์นด์นด์ค ์ธํด์ญ for Tech developers] ํคํจ๋ ๋๋ฅด๊ธฐ (0) | 2020.08.27 |