[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ / ํŒŒ์ด์ฌ / Python
Algorithm/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ / ํŒŒ์ด์ฌ / Python

728x90
๋ฐ˜์‘ํ˜•

 

๐Ÿ’กsolutions )

๐Ÿ’ฌ ์ฒ˜์Œ ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ์—์„œ ์Šฌ๋ผ์ด์‹ฑ์œผ๋กœ ๋ฌธ์ž์—ด์„ ์—…๋ฐ์ดํŠธ ํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ ๋‚˜์„œ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

๐Ÿ’ฌ ๋‹ค์Œ์œผ๋กœ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋Š” stack์„ ๋งŒ๋“ค์–ด์„œ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ append()๋กœ ๋„ฃ์–ด์ฃผ๊ณ  ์ง์„ ๋งŒ๋‚œ ๊ฒฝ์šฐ์—๋Š” pop()์œผ๋กœ ์ œ๊ฑฐํ•ด์ฃผ์—ˆ๋‹ค.

๐Ÿ’ฌ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ์žฌ๊ณ  0์ด๋ฉด 1๋ฆฌํ„ด, 0์ด ์•„๋‹ˆ๋ฉด 0์„ ๋ฆฌํ„ดํ•œ๋‹ค.

 

๐ŸŽซcode )

 

๐Ÿ”ถ ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ์—์„œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•œ ์ฝ”๋“œ

# ์‹œ๊ฐ„ ์ดˆ๊ณผ ์ฝ”๋“œ
def solution(s):
    if len(s) % 2 == 1:
        return 0

    idx = 0
    while True:
        if len(s) == 0:
            return 1
        if idx > len(s) - 2:
            return 0
        if s[idx] == s[idx + 1]:
            if idx == 0:
                s = s[idx + 2:]
            else:
                s = s[:idx] + s[idx + 2:]
                idx = 0
        else:
            idx += 1

 

๐Ÿ”ถ ์ƒˆ๋กœ ์ž‘์„ฑํ•œ ์ฑ„์  ํ†ต๊ณผํ•œ ์ฝ”๋“œ

def solution(s):
    if len(s) % 2 == 1:
        return 0
    
    stack = []
    for i in s:
        if len(stack) == 0:
            stack.append(i)
        elif i == stack[-1]:
            stack.pop()
        else:
            stack.append(i)
            
    if len(stack) == 0:
        return 1
    else:
        return 0

 

๐Ÿ“Œ description )

๋ฌธ์ œ์ถœ์ฒ˜ : programmers.co.kr/learn/courses/30/lessons/12973?language=python3

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ

์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๋Š”, ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๊ฐ€์ง€๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋ฌธ์ž์—ด์—์„œ ๊ฐ™์€ ์•ŒํŒŒ๋ฒณ์ด 2๊ฐœ ๋ถ™์–ด ์žˆ๋Š” ์ง์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ, ๊ทธ ๋‘˜์„ ์ œ๊ฑฐํ•œ ๋’ค, ์•ž๋’ค๋กœ ๋ฌธ์ž์—ด์„ ์ด์–ด ๋ถ™

programmers.co.kr

๋ฌธ์ œ ์„ค๋ช…

์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๋Š”, ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๊ฐ€์ง€๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋ฌธ์ž์—ด์—์„œ ๊ฐ™์€ ์•ŒํŒŒ๋ฒณ์ด 2๊ฐœ ๋ถ™์–ด ์žˆ๋Š” ์ง์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ, ๊ทธ ๋‘˜์„ ์ œ๊ฑฐํ•œ ๋’ค, ์•ž๋’ค๋กœ ๋ฌธ์ž์—ด์„ ์ด์–ด ๋ถ™์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ๋‹ค๋ฉด ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด 1์„, ์•„๋‹ ๊ฒฝ์šฐ 0์„ ๋ฆฌํ„ดํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์ž์—ด S = baabaa ๋ผ๋ฉด b aa baa → bb aa → aa →์˜ ์ˆœ์„œ๋กœ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ

  • ๋ฌธ์ž์—ด์˜ ๊ธธ์ด : 1,000,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ๋ฌธ์ž์—ด์€ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.


์ž…์ถœ๋ ฅ ์˜ˆ

 

๋ฐ˜์‘ํ˜•