๐ŸŒžAlgorithm/๐Ÿ”ฅprogrammers

[programmers] [1์ฐจ] ๋‹คํŠธ ๊ฒŒ์ž„ - 2018 KAKAO BLIND RECRUITMENT

๋ฟŒ์•ผ._. 2021. 1. 4. 20:34

<[1์ฐจ] ๋‹คํŠธ ๊ฒŒ์ž„>

 

๋ฌธ์ œ(์ถœ์ฒ˜: https://school.programmers.co.kr/learn/courses/30/lessons/17682)

 

 

๋ฌธ์ œ ํ’€์ด

    - my solution

def solution(dartResult):

    temp=[]
    for i in range(len(dartResult)):
        x=dartResult[i]
        if(x.isdigit()): #์ˆซ์ž ํŒ๋ณ„
            if(x=="1" and dartResult[i+1]=="0"): #10์ธ ๊ฒฝ์šฐ
                temp.append(10)
            elif(x=="0" and i!=0):
                if(dartResult[i-1]=="1"):
                    pass
                else: #0์ธ ๊ฒฝ์šฐ
                    temp.append(0)
            else: 
                temp.append(int(x))
        if(x=="S"): #Single
            pass
        if(x=="D"): #Double
            temp[-1]*=temp[-1]
        if(x=="T"): #Triple
            temp[-1]*=temp[-1]*temp[-1]
        if(x=="*"): #์Šคํƒ€์ƒ
            if(len(temp)>1):
                temp[-2]*=2
                temp[-1]*=2
            else: #์Šคํƒ€์ƒ - ์ฒซ๋ฒˆ์งธ ๊ธฐํšŒ
                temp[-1]*=2
        if(x=="#"): #์•„์ฐจ์ƒ
            temp[-1]*=-1
            
    return sum(temp)

๋‹จ์ˆœ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค!

 

1) ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•˜์—ฌ dartResult ๋ฆฌ์ŠคํŠธ ์ˆœํšŒ

    1-1) ๊ฐ’์ด ์ˆซ์ž์ธ ๊ฒฝ์šฐ 

           1-1-1) 1 ๋‹ค์Œ 0์ธ ๊ฒฝ์šฐ: ๋ฆฌ์ŠคํŠธ์— 10 ์ถ”๊ฐ€

           1-1-2) ๋งจ ์•ž ๊ฐ’์ด ์•„๋‹ˆ๊ณ  0์ธ ๊ฒฝ์šฐ

                    1-1-2-1) ์•ž์ด 1์ด๋ฉด: 1-1-1)์—์„œ 10์„ ์ถ”๊ฐ€ํ–ˆ์œผ๋ฏ€๋กœ pass

                    1-1-2-2) ์•ž์ด ์ด ์•„๋‹ˆ๋ฉด: ๋‹จ์ˆœ ์ ์ˆ˜๊ฐ€ 0์ด๋ฏ€๋กœ ๋ฆฌ์ŠคํŠธ์— 0 ์ถ”๊ฐ€

           1-1-3) ๊ทธ ์™ธ ๊ฒฝ์šฐ: ๋ฆฌ์ŠคํŠธ์— ์ •์ˆ˜ ๊ฐ’ ์ถ”๊ฐ€

    1-2) S์ธ ๊ฒฝ์šฐ: Single - 1 ์ œ๊ณฑ์€ ์›๋ž˜ ๊ฐ’ ๊ทธ๋Œ€๋กœ์ด๋ฏ€๋กœ pass

    1-3) D์ธ ๊ฒฝ์šฐ: Double - 2 ์ œ๊ณฑ

    1-4) T์ธ ๊ฒฝ์šฐ: Triple - 3 ์ œ๊ณฑ

    1-5) *์ธ ๊ฒฝ์šฐ: ์Šคํƒ€์ƒ 

           1-5-1) ์ฒซ ๋ฒˆ์งธ ๊ธฐํšŒ์—์„œ ๋‚˜์˜จ ๊ฒƒ์ด ์•„๋‹Œ ๊ฒฝ์šฐ: ํ•ด๋‹น ์ ์ˆ˜์™€ ๋ฐ”๋กœ ์ „์— ์–ป์€ ์ ์ˆ˜ ๊ฐ 2๋ฐฐ

           1-5-2) ์ฒซ ๋ฒˆ์งธ ๊ธฐํšŒ์—์„œ ๋‚˜์˜จ ๊ฒฝ์šฐ: ์ฒซ ๋ฒˆ์งธ ์ ์ˆ˜๋งŒ 2๋ฐฐ

    1-6) #์ธ ๊ฒฝ์šฐ: ์•„์ฐจ์ƒ - ํ•ด๋‹น ์ ์ˆ˜ ๋งˆ์ด๋„ˆ์Šค

 

์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ ์Šคํƒ€์ƒ๊ณผ ์•„์ฐจ์ƒ ํšจ๊ณผ์˜ ์ค‘์ฒฉ๋œ๋‹ค๋Š” ์กฐ๊ฑด์˜ ๊ฒฝ์šฐ๋Š” ๋”ฐ๋กœ ๊ตฌํ˜„ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

๋˜ํ•œ ์Šคํƒ€์ƒ๊ณผ ์•„์ฐจ์ƒ์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ๋„ ๋”ฐ๋กœ ๊ตฌํ˜„ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

์ด ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ์ ์ˆ˜๊ฐ€ 10์ ์ผ ๋•Œ ๋”ฐ๋กœ ๊ณ ๋ คํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ด ๋†“์น˜๊ธฐ ์‰ฌ์šด ๋ถ€๋ถ„์ด์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.


    ์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges