๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/๋ฐฑ์ค€(BOJ)

[ ํŒŒ์ด์ฌ(python) ] ๋ฐฑ์ค€ 3986 - ์ข‹์€ ๋‹จ์–ด

by YWTechIT 2021. 7. 6.
728x90

๐Ÿ“ ๋ฐฑ์ค€ 3986 - ์ข‹์€ ๋‹จ์–ด

๋ฌธ์ œ: ๋ฐฑ์ค€ 3986 - ์ข‹์€ ๋‹จ์–ด


๐Ÿ’ก ๋‚˜์˜ ํ’€์ด

์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ํ’€์–ด์•ผ ํ• ์ง€ ๊ณ ๋ฏผํ•˜๋‹ค stack์œผ๋กœ ํ’€์—ˆ๋Š”๋ฐ ์ •๋‹ตํŒ์ •์„ ๋ฐ›์•˜๋‹ค. ๋ฌธ์ œ์—์„œ ์•„์น˜ํ˜• ๊ณก์„ ์œผ๋กœ ๋งŒ๋‚˜์•ผ ํ•œ๋‹ค๊ณ  ๋‚˜์™€์žˆ๋Š”๋ฐ ๊ด„ํ˜ธ ์Œ๋งž์ถ”๋Š” ๋ฌธ์ œ์ฒ˜๋Ÿผ stack์— ๋“ค์–ด์˜ค๋Š” ํ˜„์žฌ ๊ฐ’๊ณผ ์ด์ „์— ์žˆ๋˜ stack[-1]๊ณผ ๋น„๊ตํ•ด์„œ ๊ฐ™์œผ๋ฉด pop() ๋‹ค๋ฅด๋ฉด s[i]๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€๋ฉด ๋œ๋‹ค.

728x90

๋งจ ์ฒ˜์Œ stack์ด ์—†์„ ๋•Œ ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ๋„ฃ์ง€??๋ผ๊ณ  ์ƒ๊ฐํ•˜๋‹ค stack์— ๊ฐ’์ด ์žˆ์„ ๋•Œ, ์—†์„ ๋•Œ๋กœ ๋‚˜๋ˆ ์„œ ์กฐ๊ฑด์„ ์ž‘์„ฑํ–ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋‚˜์˜์ฝ”๋“œ์™€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ ์ฝ”๋“œ์˜ ์ฐจ์ด์ ์€ 13 ~ 19๋ฒˆ ์ธ๋ฐ, stack ์กฐ๊ฑด์„ and๋กœ ํ•ฉ์น˜๊ณ  ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” append๋ฅผ ์ค˜๋„ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๊ธธ๋ž˜ ๊ฐ€์ ธ์™”๋‹ค. ๋‹ค์Œ ์‚ฌ์ง„์€ ์˜ˆ์ œ ์ž…๋ ฅ 1์„ ์†์œผ๋กœ ๊ทธ๋ฆฌ๋ฉด์„œ ํ‘ผ ์‚ฌ์ง„์ด๋‹ค. (๊ธ€์”จ์ฃผ์˜)

 

 

# ๋‚˜์˜ ์ฝ”๋“œ
import sys
input = sys.stdin.readline

n = int(input())
cnt = 0

for _ in range(n):
    s = input().rstrip()
    stack = []

    for i in range(len(s)):
        if stack:
            if s[i] == stack[-1]:
                stack.pop()
            else:
                stack.append(s[i])
        else:
            stack.append(s[i])

    if not stack:
        cnt += 1
print(cnt)
# ๋‹ค๋ฅธ ์‚ฌ๋žŒ ์ฝ”๋“œ
import sys
input = sys.stdin.readline

n = int(input())
cnt = 0

for _ in range(n):
    s = input().rstrip()
    stack = []

    for i in range(len(s)):
        if stack and s[i] == stack[-1]:
            stack.pop()
        else:
            stack.append(s[i])

    if not stack:
        cnt += 1
print(cnt)
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€