Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป

Algorithm/Baekjoon

[python3] ์ด์ฝ”ํ…Œ - ๊ณฑํ•˜๊ธฐ ํ˜น์€ ๋”ํ•˜๊ธฐ (ch.11 ๊ทธ๋ฆฌ๋”” - ์œ ํ˜•๋ณ„ ๊ธฐ์ถœ๋ฌธ์ œ)

๊ฐ์ž ๐Ÿฅ” 2021. 6. 22. 20:41
๋ฐ˜์‘ํ˜•

๊ณฑํ•˜๊ธฐ ํ˜น์€ ๋”ํ•˜๊ธฐ (ebook๊ธฐ์ค€ p.315)

- ๊ฐ ์ž๋ฆฌ๊ฐ€ ์ˆซ์ž(0~9)๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S ๊ฐ€ ์ฃผ์–ด์ง
- ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•˜๋‚˜์”ฉ ๋ชจ๋“  ์ˆซ์ž๋ฅผ ํ™•์ธํ•˜์—ฌ ์ˆซ์ž ์‚ฌ์ด์— X ๋˜๋Š” + ์—ฐ์‚ฐ์ž๋ฅผ ๋„ฃ์–ด ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฐ€์žฅ ํฐ ์ˆ˜๋กœ ๋งŒ๋“ค์–ด๋‚ด๊ณ  ์‹ถ๋‹ค.

##### ์ž…๋ ฅ์˜ˆ์‹œ
- 02984๊ฐ€ ์ฃผ์–ด์ง€๋ฉด (0+2)*9*8*4 ๋กœ ์ตœ๋Œ€๊ฐ’ 576์ด ์ถœ๋ ฅ
- ์ตœ๋Œ€๊ฐ’์ด 20์–ต ์ดํ•˜์˜ ์ •์ˆ˜๊ฐ€ ๋˜๋„๋ก ์ž…๋ ฅ์„ ์ค„๊ฒƒ์ด๋‹ค
- ์ฒซ์จ‹์ค„ ์ž…๋ ฅ์œผ๋กœ ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋œ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง (1 <= s๊ธธ์ด <= 20)

 

<๋‚ด๊ฐ€ ํ‘ผ ์ฝ”๋“œ>

์ •์ƒ์ ์œผ๋กœ ์ถœ๋ ฅ์ด ๋˜๊ธดํ•˜์ง€๋งŒ, ๋‹ต์•ˆ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ƒˆ๋‹ค. ๋‚ด๊ฐ€ ์ƒ๊ฐ์ด ์กฐ๊ธˆ ์งง์•˜๋˜ ํƒ“์— ์กฐ๊ธˆ ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง„ ๊ฒƒ ๊ฐ™๋‹ค. ํ•œ๋ฒˆ๋งŒ ๋” ์ƒ๊ฐํ–ˆ๋‹ค๋ฉด ๊ฐ™์€ ๊ตฌํ˜„๋ฐฉ๋ฒ•์— ๊ธธ์ด๊ฐ€ ์งง์€ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์„ํ…๋ฐ.. ์—ญ์‹œ๋‚˜ ์•„์ง ๋ถ€์กฑํ•œ์ ์ด ๋งŽ๋‹ค. ๋‹ต์•ˆ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ณ ์นœ ๋‚˜์˜ ์ฝ”๋“œ๋ฅผ ์•„๋ž˜ ๋ถ™์—ฌ๋„ฃ๊ฒ ๋‹ค.

s = '00000910'

def solution(s):
    s = list(map(int, s))
    
    first_num = s.pop(0)
    while s:
        num = s.pop(0)
        # 0์ด๋‚˜ 1 ์ด๋ฉด ๊ณฑํ•˜์ง€๋ง๊ณ  ๋”ํ•ด์ค˜์•ผํ•จ
        if num <= 1:
            first_num += num
            
        # ๊ทธ ์ด์ƒ์˜ ์ˆซ์ž๋ผ๋ฉด
        else:
            #์ฒ˜์Œ ์—ฐ์† 0์ด ๋‘๋ฒˆ์ด์ƒ๋‚˜์˜ฌ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ
            if first_num == 0 or first_num == 1:
                first_num += num
            else:
                first_num *= num
        
    return first_num

solution(s) 

 

 

<๋‹ต์•ˆ ์ฝ”๋“œ์™€ ๋น„๊ตํ•˜๊ณ  ์ƒˆ๋กญ๊ฒŒ ๊ณ ์นœ ์ฝ”๋“œ>

๋” ๊ฐ„๊ฒฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„๋ณต์žก๋„ ๋ฉด์—์„œ ๋” ํšจ์œจ์ด ๋†’์€ ์ฝ”๋“œ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

s = '01212'

def solution(s):
    s = list(map(int, s))
    
    first_num = s.pop(0)
    while s:
        num = s.pop(0)
        # first_num๊ณผ num ๋‘˜์ค‘ ํ•˜๋‚˜๋ผ๋„ 0์ด๊ฑฐ๋‚˜ 1์ด๋ฉด ๋”ํ•ด์คŒ
        if first_num <= 1 or num <= 1:
            first_num += num
        # ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๊ณฑํ•ด์คŒ
        else:
            first_num *= num

    return first_num

solution(s) 

๋‹ค์–‘ํ•œ ์ผ€์ด์Šค๋ฅผ ๋„ฃ์–ด์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์•˜๋Š”๋ฐ, ์˜ฌ๋ฐ”๋ฅธ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋ฐ˜์‘ํ˜•