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

[๋ฐฑ์ค€] 12904 A์™€ B (ํŒŒ์ด์ฌ/python)

by chjcoder 2023. 7. 11.

๐ŸŽˆ๋ฌธ์ œ

https://www.acmicpc.net/problem/12904

 

๐ŸŽ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜?

1. s๋ฅผ t๋กœ ๋งŒ๋“œ๋ ค๋ฉด A๋ฅผ ๋’ค์— ๋ถ™์ด๊ฑฐ๋‚˜,  ๋’ค์ง‘์–ด์„œ B๋ฅผ ๋’ค์— ๋ถ™์ด๋Š” 2๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ t-s๊ฐœ์ˆ˜ ๋งŒํผ ๋Œ๋ ค๋ด์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ t๋ฅผ s๋กœ ๋งŒ๋“ค ๊ฒฝ์šฐ ํ›จ์”ฌ ๊ฐ„๋‹จํ•ด์ง„๋‹ค.

2. t์˜ ๋งจ ๋’ค ์•ŒํŒŒ๋ฒณ์— ๋งž์ถฐ์„œ ์ œ๊ฑฐํ•˜๋‹ค๋ณด๋ฉด s์™€ ๊ฐ™์•„์ง€๋˜์ง€, t์˜ ๋ชจ๋“  ๋ฌธ์ž์—ด์ด pop ๋˜์—ˆ์Œ์—๋„ s์™€ ๊ฐ™์ง€ ์•Š๋Š” ๋‘ ๊ฐ€์ง€ ์ƒํ™ฉ์ด ๋‚˜์˜ค๊ฒŒ๋œ๋‹ค. 

 

๐Ÿ’ป์ฝ”๋“œ

s = list(input())
t = list(input())
same = False

while t:
    if s == t:
        same = True
        break
    if t[-1] == 'A':
        t.pop()
    elif t[-1] == 'B':
        t.pop()
        t = t[::-1]

if same:
    print(1)
else:
    print(0)

 

๐ŸŽ„์ฝ”๋“œ ์„ค๋ช…

1. ๋ฌธ์ž์—ด์„ ์ˆ˜์ •ํ•ด์•ผ ํ•  ๋•Œ๋Š” ํ•ญ์ƒ listํ˜•์ด์—ฌ์•ผ ํ•จ์„ ๊ธฐ์–ตํ•˜์ž.

2. ๋”ฐ๋ผ์„œ s์™€ t๊ฐ’์„ list๋กœ ๋ฐ›๋Š”๋‹ค.

3. t์˜ ๋งจ ๋’ค ๋ฌธ์ž์—ด์„ ํ•˜๋‚˜์”ฉ ๋ฝ‘์•„๊ฐ€๋ฉฐ s์™€ ๊ฐ™์•„์ง€๋Š”์ง€๋ฅผ ํ™•์ธํ•  ๊ฒƒ ์ด๋ฏ€๋กœ while์˜ ์กฐ๊ฑด์€ t๊ฐ€ ๋˜๊ณ , t๊ฐ€ ๋ชจ๋‘ ๋ฝ‘ํ˜€๋‚˜๊ฐ€ ๋นˆ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋˜๋ฉด while๋ฌธ์€ ์ข…๋ฃŒ.

4. ๋ฆฌ์ŠคํŠธ t์˜ ๋งจ ๋’ค ๊ฐ’์ด 'A'์ผ ๊ฒฝ์šฐ ๋‹จ์ˆœํžˆ ๋ฝ‘์•„๋‚ด๊ณ , 'B'์ผ ๊ฒฝ์šฐ์—๋Š” ๋ฝ‘์•„๋‚ด๊ณ  ๋’ค์ง‘๋Š”๋‹ค.

5. s ์™€ t๊ฐ€ ๊ฐ™์„ ๋•Œ ํƒˆ์ถœํ•˜๋Š” ํƒˆ์ถœ ์กฐ๊ฑด์„ ๋„ฃ์–ด์ค€๋‹ค.