[1์ฐจ] 2018 KAKAO BLIND RECRUITMENT - Lv1.
๐ต ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/17682
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ํ์ด
์คํ์ ์ด์ฉํ๋ฉด ๊ณ์ฐํ๊ธฐ์ ํธํ๊ฒ ๋ค๊ณ ์๊ฐํ๋๋ฐ, ์ซ์๋ฅผ ๋ง์ฃผํ๋ฉด ์คํ์ ๋ฃ์ด์ฃผ๊ณ ์๋ ๊ฒฝ์ฐ ์ฐ์ฐํ์ฌ ์ฐ์ฐ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฃ์ด์คฌ์ต๋๋ค. ์ด ๊ณผ์ ์์ ํ ๋ฌธ์์ฉ ์ฝ๊ฒ๋๋๋ฐ ์ ์์ ๋ฒ์๋ 1~10์ด๋ฏ๋ก 10์ ๋ฐ๋ณต๋ฌธ ๋๊ธฐ ์ด์ ์ '@' ๋ฌธ์๋ก ๋ฐ๊ฟ์ฃผ์์ต๋๋ค. ์ซ์๋ก ๋์ด์๋ ๋ฌธ์๋ฅผ ํ๋ณํ๋ ๊ณผ์ ์ isNumChar ํจ์๋ก ๋นผ์ฃผ์๊ณ , ์คํ์ ๋ฃ์ ๋ '@'๋ฅผ ๋ง๋๋ฉด ์ ์ 10์ด ๋ค์ด๊ฐ๋๋ค.
๐ก ํ์ด ์ฝ๋๋ ์๋์ ๊ฐ์ต๋๋ค.
def isNumChar(char):
if 48 <= ord(char) and ord(char) <= 57:
return True
if char == '@':
return True
return False
def solution(dartResult):
s = []
price = {'*': 2, '#': -1}
bonus = {'S': 1, 'D': 2, 'T': 3}
for char in dartResult.replace('10', '@'):
if isNumChar(char):
s.append(int(char) if char != '@' else 10)
if char in bonus:
num = s.pop()
s.append(num ** bonus[char])
if char in price:
s[-1] *= price[char]
if char == '*' and len(s) > 1:
s[-2] *= price[char]
return sum(s)
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ๋ก๊ทธ๋๋จธ์ค] ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ (KAKAO TECH INTERNSHIP) - Python (0) | 2023.02.23 |
|---|---|
| [ํ๋ก๊ทธ๋๋จธ์ค] ์คํจ์จ (KAKAO BLIND RECRUITMENT) - Python (0) | 2023.02.23 |
| [ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต - Python (0) | 2022.12.04 |
| [BOJ] ํด๋ฆฌ์ค๋ฏธ๋ ธ - Python (0) | 2022.12.04 |
| [ํ๋ก๊ทธ๋๋จธ์ค] ๊ตฌ๋ช ๋ณดํธ - Python (0) | 2022.12.04 |