๐Ÿ—๏ธ Algorithm/โฌ› ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Programmers] [2017 ํŒ์Šคํƒ€์šด] [Python] Level2_์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ

Dbswnstjd 2022. 10. 12. 04:17

๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/12973

 

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

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

programmers.co.kr

 

ํ’€์ด

# ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - 2017ํŒ์Šคํƒ€์šด - ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ
def solution(s):
    stack = []

    for i in s:
        if not stack: # stack์ด ๋น„์–ด์žˆ์„ ๊ฒฝ์šฐ stack์— push
            stack.append(i)
        elif stack[-1] == i: # stack์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ์™€ s์—์„œ pop๋˜๋Š” ์›์†Œ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ
            stack.pop()
        else: # stack์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ์™€ pop๋˜๋Š” ์›์†Œ๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ ๊ทธ ์›์†Œ๋ฅผ stack์— ์ถ”๊ฐ€
            stack.append(i)
    answer = -1

    return answer

์Šคํƒ ์ด๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ƒ๊ฐํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.