๋ฐฑ์ค€ - A์™€ B(Swift)

2022. 11. 6. 11:08ใ†Algorithm

๋ฐฑ์ค€ - A์™€ B(Swift)

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

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

 

12904๋ฒˆ: A์™€ B

์ˆ˜๋นˆ์ด๋Š” A์™€ B๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์˜์–ด ๋‹จ์–ด๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋†€๋ž๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ AB (Abdominal์˜ ์•ฝ์ž), BAA (์–‘์˜ ์šธ์Œ ์†Œ๋ฆฌ), AA (์šฉ์•”์˜ ์ข…๋ฅ˜), ABBA (์Šค์›จ๋ด ํŒ ๊ทธ๋ฃน)์ด ์žˆ๋‹ค. ์ด๋Ÿฐ ์‚ฌ์‹ค์— ๋†€๋ž€ ์ˆ˜

www.acmicpc.net

 

 ๋‚˜์˜ ํ’€์ด

 

S์—์„œ T๋กœ ๊ฐ€๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ค์€ ๊ฐ๊ฐ A๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ B๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋…๋ฆฝ์ ์ธ ๊ฒฝ์šฐ์ด๋‹ค. ์ด๋Š” ๋ฐ˜๋Œ€๋กœ ์ƒ๊ฐํ•˜๋ฉด

T์—์„œ S๋กœ ๊ฐˆ๋•Œ A๋ผ๋ฉด 1๋ฒˆ๋กœ์ง์„, B๋ผ๋ฉด 2๋ฒˆ ๋กœ์ง์„ ๋”ฐ๋ฅด๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

string์—์„œ reversed๋ฅผ ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ reverseCollectionํƒ€์ž…์ด ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ mapping์„ ํ•ด์ค˜์„œ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

 

import Foundation

let S = readLine()!
var T = readLine()!

var flag = false
while true {
    if T.count == S.count {
        if S == T {
            flag = true
        }
        break
    }
    
    if T.last! == "A" {
        T.removeLast()
    } else {
        T.removeLast()
        T = T.reversed().map{String($0)}.joined()
    }  
}

print(flag ? "1" : "0")