# ์ž๋ฃŒ๊ตฌ์กฐ

3986. ์ข‹์€ ๋‹จ์–ด (silver 4)

์ด๋ฒˆ ๊ณ„์ ˆํ•™๊ธฐ์— ์‹ฌ๋ฆฌํ•™ ๊ฐœ๋ก ์„ ์ˆ˜๊ฐ• ์ค‘์ธ ํ‰์„์ด๋Š” ์˜ค๋Š˜ ์ž์ •๊นŒ์ง€ ๋ณด๊ณ ์„œ๋ฅผ ์ œ์ถœํ•ด์•ผ ํ•œ๋‹ค. ๋ณด๊ณ ์„œ ์ž‘์„ฑ์ด ๋„ˆ๋ฌด ์ง€๋ฃจํ–ˆ๋˜ ํ‰์„์ด๋Š” ๋…ธํŠธ๋ถ์— ์—Ž๋“œ๋ ค์„œ ๊พธ๋ฒ…๊พธ๋ฒ… ์กธ๋‹ค๊ฐ€ ์ œ์ถœ ๋งˆ๊ฐ 1์‹œ๊ฐ„ ์ „์— ๊นจ๊ณ  ๋ง์•˜๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ์ž๋Š” ๋™์•ˆ ํ‚ค๋ณด๋“œ๊ฐ€ ์ž˜๋ชป ๋ˆŒ๋ ค์„œ ๋ณด๊ณ ์„œ์˜ ๋ชจ๋“  ๊ธ€์ž๊ฐ€ A์™€ B๋กœ ๋ฐ”๋€Œ์–ด ๋ฒ„๋ ธ๋‹ค! ๊ทธ๋ž˜์„œ ํ‰์„์ด๋Š” ๋ณด๊ณ ์„œ ์ž‘์„ฑ์„ ๋•Œ๋ ค์น˜์šฐ๊ณ  ๋ณด๊ณ ์„œ์—์„œ '์ข‹์€ ๋‹จ์–ด'๋‚˜ ์„ธ๋ณด๊ธฐ๋กœ ๋งˆ์Œ ๋จน์—ˆ๋‹ค.

ํ‰์„์ด๋Š” ๋‹จ์–ด ์œ„๋กœ ์•„์น˜ํ˜• ๊ณก์„ ์„ ๊ทธ์–ด ๊ฐ™์€ ๊ธ€์ž๋ผ๋ฆฌ(A๋Š” A๋ผ๋ฆฌ, B๋Š” B๋ผ๋ฆฌ) ์Œ์„ ์ง“๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ๋งŒ์•ฝ ์„ ๋ผ๋ฆฌ ๊ต์ฐจํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ๊ฐ ๊ธ€์ž๋ฅผ ์ •ํ™•ํžˆ ํ•œ ๊ฐœ์˜ ๋‹ค๋ฅธ ์œ„์น˜์— ์žˆ๋Š” ๊ฐ™์€ ๊ธ€์ž์™€ ์ง ์ง€์„์ˆ˜ ์žˆ๋‹ค๋ฉด, ๊ทธ ๋‹จ์–ด๋Š” '์ข‹์€ ๋‹จ์–ด'์ด๋‹ค. ํ‰์„์ด๊ฐ€ '์ข‹์€ ๋‹จ์–ด' ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” ๊ฒƒ์„ ๋„์™€์ฃผ์ž.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 100)

๋‹ค์Œ N๊ฐœ ์ค„์—๋Š” A์™€ B๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” 2์™€ 100,000์‚ฌ์ด์ด๋ฉฐ, ๋ชจ๋“  ๋‹จ์–ด ๊ธธ์ด์˜ ํ•ฉ์€ 1,000,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ข‹์€ ๋‹จ์–ด์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ1

3
ABAB
AABB
ABBA

์˜ˆ์ œ ์ถœ๋ ฅ1

2

 

์˜ˆ์ œ ์ž…๋ ฅ2

3
AAA
AA
AB

์˜ˆ์ œ ์ถœ๋ ฅ2

1

 

์˜ˆ์ œ ์ž…๋ ฅ3

1
ABBABB

์˜ˆ์ œ ์ถœ๋ ฅ3

1

 

 

ํ’€์ด

๋‹จ์–ด์˜ ์ˆ˜ n์„ ๋จผ์ € ์ž…๋ ฅ๋ฐ›๊ณ  ์ €์žฅํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ์ข‹์€ ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” cnt๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ์—ˆ๋‹ค.

for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ n๊ฐœ๋งŒํผ str์— ๋‹จ์–ด๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , rstrip๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‹จ์–ด ์‚ฌ์ด์˜ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•ด์ฃผ์—ˆ๋‹ค.

์ข‹์€ ๋‹จ์–ด๋ฅผ ํŒ๋ณ„ํ•ด์ค„ ๋ฐฐ์—ด์ธ stack์„ ์„ ์–ธํ•ด์ค€๋‹ค.

for๋ฌธ๊ณผ if๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋งŒ์•ฝ stack์— str์ด ์—†๋Š” ๊ฒฝ์šฐ append๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋‹น ๋‹จ์–ด๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ๋งŒ์•ฝ ์ด๋ฏธ stack์— ์ถ”๊ฐ€๋œ ๋‹จ์–ด์ธ ๊ฒฝ์šฐ, ๋˜ ๋‹ค๋ฅธ if๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ str์— ์žˆ๋Š” ๊ธ€์ž๊ฐ€ ์ด์ „์— ๋‹ด๊ธด ๊ธ€์ž์™€ ๊ฐ™์€ ๊ฒฝ์šฐ, ์ข‹์€ ๋‹จ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— stack์—์„œ ๋นผ๋‚ด์ฃผ์—ˆ๋‹ค. 

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์นœ ํ›„ ์Šคํƒ์— ์•„๋ฌด๋Ÿฐ ๊ฐ’๋„ ๋‚จ์•„์žˆ์ง€ ์•Š์œผ๋ฉด ์ข‹์€ ๋‹จ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— cnt๋ฅผ ํ•˜๋‚˜ ๋”ํ•ด์ฃผ์—ˆ๊ณ , ๋งˆ์ง€๋ง‰ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ cnt๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ์—ˆ๋‹ค.

import sys
input = sys.stdin.readline
 
n = int(input())
cnt = 0   # ์ข‹์€ ๋‹จ์–ด ๊ฐœ์ˆ˜
 
for i in range(n):
    str = input().rstrip()  # str์— ์žˆ๋Š” ๊ณต๋ฐฑ ์ œ๊ฑฐ
    stack = []
 
    for i in range(len(str)):
        if stack:   # stack์— ์ด๋ฏธ ์ถ”๊ฐ€๋œ ๋‹จ์–ด์ธ ๊ฒฝ์šฐ
            if str[i] == stack[-1]:
                stack.pop()
            else:
                stack.append(str[i])
        else:
            stack.append(str[i])   # stack์— ์—†๋Š” ๋‹จ์–ด ์ถ”๊ฐ€
 
    if not stack:
        cnt += 1
print(cnt)

์‹คํ–‰ ๊ฒฐ๊ณผ

 

'๋ฐฑ์ค€ > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 11652๋ฒˆ  (0) 2022.11.12
[Python] ๋ฐฑ์ค€ 5568๋ฒˆ  (1) 2022.11.12
[Python] ๋ฐฑ์ค€ 2776๋ฒˆ  (0) 2022.11.12
[Python] ๋ฐฑ์ค€ 10815๋ฒˆ  (0) 2022.11.12
[Python] ๋ฐฑ์ค€ 1158  (0) 2022.10.04
๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค!