[ํ๋ก๊ทธ๋๋จธ์ค] ๐ฏ ๋คํธ ๊ฒ์ - [1์ฐจ] 2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ / Python
๐ฏ ๋คํธ ๊ฒ์ ๋ฌธ์ ํ์ด๋ณด๊ธฐ
๐ ๋์ ์ฝ๋
import re
def solution(dartResult):
answer = 0
p = re.compile("(\d+)([a-zA-Z])(\*|#)?")
scores = p.findall(dartResult)
result = []
for idx, score in enumerate(scores):
point = score[0]
bonus = score[1]
option = score[2]
if bonus == 'S':
bonus = 1
elif bonus == 'D':
bonus = 2
elif bonus == 'T':
bonus = 3
if option == '*':
if idx == 0:
result.append(int(point)**bonus*2)
else:
result[-1] *= 2
result.append(int(point)**bonus*2)
elif option == '#':
result.append(int(point)**bonus*-1)
else: result.append(int(point)**bonus)
return sum(result)
์ ๊ท ํํ์(Regular Expression) Python
์ ๋ด์ฅ Module์ธ re
๋ฅผ ์ด์ฉํ๋ฉด ๋คํธ ๊ฒ์์ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค. ์ ์ | ๋ณด๋์ค | [์ต์
]๋ก ์ด๋ฃจ์ด์ง ์ํ๋ค์ด ๋ฌธ์์ด์ด๋ผ๋ ํ ๋ฉ์ด๋ก ์๊ธฐ ๋๋ฌธ์ ์ ๊ท ํํ์์ ์ด์ฉํด ์ด๋ฅผ ์ ์ ํ๊ฒ ๋๋ ์ค๋๋ค. ์ฌ๊ธฐ์ ์ฐ์ธ ์ ๊ท ํํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
p = re.compile("(\d+)([a-zA-Z])(\*|#)?")
(\d+)
๋ 1๊ฐ ์ด์์ ์ซ์์ ๋์ํฉ๋๋ค.
([a-zA-Z])
๋ ์ํ๋ฒณ ํ๋์ ๋์ํฉ๋๋ค.
(\*|#)?
์ *
ํน์(|
, OR
) #
์ ๋์ํฉ๋๋ค. ์ด ๋ถ๋ถ์ ์ต์
์ฆ ์์ ์๋ ์๊ณ ์์ ์๋ ์๊ธฐ ๋๋ฌธ์, *
์ #
์ ?
๋ฅผ ๋ถ์ฌ์ ์ด๋ฅผ ํํํฉ๋๋ค.
๊ฐ๊ฐ์ ์๊ดํธ(parenthesis)๋ก ๋ฌถ์ฌ ์์ต๋๋ค.
scores = p.findall(dartResult)
๋ฐ๋ผ์ ์ด ๊ฒฐ๊ณผ ๊ฐ์ธ scores
๋ [('1', 'S', ''), ('2', 'D', '*'), ('3', 'T', '')]
์ด๋ฐ ํํ๊ฐ ๋ฉ๋๋ค.
์ด์ ๊ฐ ์ํ์ด ์ ์ ํ๊ฒ ๋ถ๋ฆฌ๋์์ผ๋ ๋จ์ ๊ฑด ์ ์์ ๊ณ์ฐ์ด ๋จ์์์ต๋๋ค. ์ ์ ๊ณ์ฐ์ scores
๋ฐฐ์ด์ ์๋ถํฐ ํ์ธํ๋ฉด์ ๋ฌธ์ ์ค๋ช
์ ๋์จ ์ ์ ๊ณ์ฐ๋ฒ์ ๋ฐ๋ผ ์ง๋ฉด ํฐ ์ด๋ ค์์ ์์ต๋๋ค. ์ด๋ ๊ฒ ๋์จ ๊ฐ ์ํ๋ณ ์ต์ข
์ ์๋ฅผ result
๋ฐฐ์ด์ ์ ์ฅํ๊ณ ๋ชจ๋ ์์์ ํฉ์ ๋ฐํํ๋ sum(result)
๋ฅผ ๋ฐํํ๋ฉด ๋ฌธ์ ๊ฐ ๋ง๋ฌด๋ฆฌ๋ฉ๋๋ค.
Written with StackEdit.
'Algorithm > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ฉโ๐ผ ๋ด์ค ํด๋ฌ์คํฐ๋ง - [1์ฐจ] 2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ / Python / KAKAO BLIND RECRUITMENT
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ฉโ๐ผ ๋ด์ค ํด๋ฌ์คํฐ๋ง - [1์ฐจ] 2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ / Python / KAKAO BLIND RECRUITMENT
2019.02.14 -
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จโ๐ป ์บ์ - [1์ฐจ] 2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ / Python
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จโ๐ป ์บ์ - [1์ฐจ] 2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ / Python
2019.02.13 -
[ํ๋ก๊ทธ๋๋จธ์ค] ๐บ ๋น๋ฐ์ง๋ - [1์ฐจ] 2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ / Python
[ํ๋ก๊ทธ๋๋จธ์ค] ๐บ ๋น๋ฐ์ง๋ - [1์ฐจ] 2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ / Python
2019.02.12 -
๐ฅ 2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ ์๊ณ ๋ฆฌ์ฆ ํ ์คํธ 3์ฐจ Python ํ์ด ๋ชจ์ / KAKAO BLIND RECRUITMENT
๐ฅ 2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ ์๊ณ ๋ฆฌ์ฆ ํ ์คํธ 3์ฐจ Python ํ์ด ๋ชจ์ / KAKAO BLIND RECRUITMENT
2019.02.09
ํน์ ์ด๋ฐ์์ผ๋ก ์ฝ๋ ๋ณต์ฌ๋๊ฒ๋ ์ฌ๋ฆฌ๋๊ฑฐ ์ด๋ป๊ฒ ํ๋๊ฑด๊ฐ์??