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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค '์ฝ”๋“œ ์ฒ˜๋ฆฌํ•˜๊ธฐ' ํŒŒ์ด์ฌ ํ’€์ด

by beomcoder 2023. 4. 24.
728x90
๋ฐ˜์‘ํ˜•
 

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

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

programmers.co.kr

'''
๋ฌธ์ž์—ด code๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
code๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฝ์œผ๋ฉด์„œ ๋งŒ์•ฝ ๋ฌธ์ž๊ฐ€ "1"์ด๋ฉด mode๋ฅผ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
mode์— ๋”ฐ๋ผ code๋ฅผ ์ฝ์–ด๊ฐ€๋ฉด์„œ ๋ฌธ์ž์—ด ret์„ ๋งŒ๋“ค์–ด๋ƒ…๋‹ˆ๋‹ค.

mode๋Š” 0๊ณผ 1์ด ์žˆ์œผ๋ฉฐ, idx๋ฅผ 0 ๋ถ€ํ„ฐ code์˜ ๊ธธ์ด - 1 ๊นŒ์ง€ 
1์”ฉ ํ‚ค์›Œ๋‚˜๊ฐ€๋ฉด์„œ code[idx]์˜ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ–‰๋™ํ•ฉ๋‹ˆ๋‹ค.

mode๊ฐ€ 0์ผ ๋•Œ
code[idx]๊ฐ€ "1"์ด ์•„๋‹ˆ๋ฉด idx๊ฐ€ ์ง์ˆ˜์ผ ๋•Œ๋งŒ ret์˜ code[idx]๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
code[idx]๊ฐ€ "1"์ด๋ฉด mode๋ฅผ 0์—์„œ 1๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

mode๊ฐ€ 1์ผ ๋•Œ
code[idx]๊ฐ€ "1"์ด ์•„๋‹ˆ๋ฉด idx๊ฐ€ ํ™€์ˆ˜์ผ ๋•Œ๋งŒ ret์˜ ๋งจ ๋’ค์— code[idx]๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
code[idx]๊ฐ€ "1"์ด๋ฉด mode๋ฅผ 1์—์„œ 0์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด code๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ๋ฌธ์ž์—ด ret๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

๋‹จ, ์‹œ์ž‘ํ•  ๋•Œ mode๋Š” 0์ด๋ฉฐ, return ํ•˜๋ ค๋Š” ret๊ฐ€ ๋งŒ์•ฝ ๋นˆ ๋ฌธ์ž์—ด์ด๋ผ๋ฉด 
๋Œ€์‹  "EMPTY"๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.
'''

def solution(code):
    mode = False
    ret = ''
    for index, char in enumerate(code):
        if char == '1': mode = not mode
        else: ret += char if index%2 == int(mode) else ''
            
    return ret if len(ret) else 'EMPTY'
    
 '''
 mode๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋‘์–ด์„œ false๊ฐ€ 0, true๊ฐ€ 1์ธ์ ์„ ์ด์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค.
 code์— '1'์ด๋ผ๋Š” ๊ฐ’์ด ๋“ค์–ด์˜ค๋ฉด mode๊ฐ€ ๋ฐ”๋€Œ๊ธฐ ๋•Œ๋ฌธ์— not ๊ธฐํ˜ธ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ–ˆ๊ณ ,
 mode์— ๋”ฐ๋ผ ์ง์ˆ˜, ํ™€์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ mode์™€ ๊ฐ™์œผ๋ฉด
 ret์— ์ถ”๊ฐ€ํ•˜๊ณ  ์•„๋‹ˆ๋ผ๋ฉด ''์„ ๋”ํ•ด์ฃผ์—ˆ๋‹ค.
 ๊ทธ๋ฆฌ๊ณ  ret์ด ๋นˆ๋ฌธ์ž์—ด์ด๋ผ๋ฉด EMPTY๋ฅผ ๋ฐ˜ํ™˜ํ•˜์˜€๋‹ค.
 '''
728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€