๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐˜ผ๐™ก๐™œ๐™ค๐™ง๐™ž๐™ฉ๐™๐™ข/๐™‹๐™ง๐™ค๐™œ๐™ง๐™–๐™ข๐™ข๐™š๐™ง๐™จ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2018 KAKAO BLIND RECRUITMENT[1์ฐจ] '๋‹คํŠธ ๊ฒŒ์ž„' ํŒŒ์ด์ฌ ํ’€์ด

by beomcoder 2023. 2. 19.
728x90
๋ฐ˜์‘ํ˜•
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

"""
์นด์นด์˜คํ†ก ๊ฒŒ์ž„๋ณ„์˜ ํ•˜๋ฐ˜๊ธฐ ์‹ ๊ทœ ์„œ๋น„์Šค๋กœ ๋‹คํŠธ ๊ฒŒ์ž„์„ ์ถœ์‹œํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. 
๋‹คํŠธ ๊ฒŒ์ž„์€ ๋‹คํŠธํŒ์— ๋‹คํŠธ๋ฅผ ์„ธ ์ฐจ๋ก€ ๋˜์ ธ ๊ทธ ์ ์ˆ˜์˜ ํ•ฉ๊ณ„๋กœ 
์‹ค๋ ฅ์„ ๊ฒจ๋ฃจ๋Š” ๊ฒŒ์ž„์œผ๋กœ, ๋ชจ๋‘๊ฐ€ ๊ฐ„๋‹จํžˆ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋‹ค.

๊ฐ“ ์ž…์‚ฌํ•œ ๋ฌด์ง€๋Š” ์ฝ”๋”ฉ ์‹ค๋ ฅ์„ ์ธ์ •๋ฐ›์•„ ๊ฒŒ์ž„์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์ธ 
์ ์ˆ˜ ๊ณ„์‚ฐ ๋กœ์ง์„ ๋งก๊ฒŒ ๋˜์—ˆ๋‹ค. ๋‹คํŠธ ๊ฒŒ์ž„์˜ ์ ์ˆ˜ ๊ณ„์‚ฐ ๋กœ์ง์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
(์ค‘๋žต)
"""

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
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€