๋ฌธ์ ์ค๋ช
์ฝ๊ฒ ๋งํด ํญํ์ด ์๋ ๋ฌธ์๋ฅผ ์ง์์ฃผ๋ฉด ๋๋ค. ๋ ์ง์ฐ๊ณ ํฉ์น ์ํ์์ ํญํ์ด ์์ผ๋ฉด ๋ ์ง์์ฃผ๊ณ ๋ฐ๋ณต
ํ์ด
์ด์ ์ ํ๋ก๊ทธ๋๋จธ์ค์์ ๋น์ทํ ๋ฌธ์ ๋ฅผ ํ์ด ๋ฐ๋ก ํ์ด๋ฒ์ ์๊ฐํด ๋ผ ์ ์์๋ค. (ํ๋ฒ๊ฑฐ๋ง๋ค๊ธฐ)
1. stack์ ๋ฌธ์์ด ํ๋์ฉ ๋ฃ์ด์ค๋ค.
2. ๊ทธ๋๋ง๋ค stack์ ํญํ์ด๋ ๋๊ฐ์ ๋ฌธ์์ด์ด ์๋์ง ์ฒดํฌํ๊ณ ์๋ค๋ฉด ํญํ์๋งํผ pop ํด์ฃผ๋ฉด ๋๋ค.
์ฝ๋
let targetString = readLine()!.map { String($0) }
let bomb = readLine()!.map { String($0) }
var stack = [String]()
for i in 0..<targetString.count {
stack.append(targetString[i])
if stack.last! == bomb.last! // ํ์ฌ ์คํ์ ๋ง์ง๋ง ๋ฌธ์์ ํญํ์ ๋ง์ง๋ง ๋ฌธ์ ๊ฐ์์ง
&& stack.count >= bomb.count // ์คํ์ ๊ฐ์๊ฐ ํญํ์ ๊ฐ์๋ณด๋ค ๋ง์์ง (์ธ๋ฑ์ค ์๋ฌ๋์ง ์๊ฒ ์ฒดํฌ)
&& stack[stack.count-bomb.count..<stack.count].joined() == bomb.joined() { // ์คํ์ ํญํ์ด ์๋์ง
for _ in 0..<bomb.count {
stack.removeLast()
}
}
}
print(stack.isEmpty ? "FRULA" : stack.joined())
ํ๊ธฐ
๋น์ทํ ๋ฌธ์ ๋ฅผ ํผ ๊ฒฝํ์ด ์์ด ๋น๊ต์ ์ฝ๊ฒ ๋ฌธ์ ๋ฅผ ํ ์ ์์๋ค.
์์ง ๋ง์ด ๋ถ์กฑํ๋ค๊ณ ์๊ฐํ์ง๋ง.. ์กฐ๊ธ์ฉ ์ฑ์ฅํด๊ฐ๋ค๊ณ ๋๋๋ค..!!
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 1743] swift ์์๋ฌผ ํผํ๊ธฐ: DFS (0) | 2023.04.05 |
---|---|
[๋ฐฑ์ค 1654] swift ๋์ ์๋ฅด๊ธฐ (0) | 2023.03.29 |
[ํ๋ก๊ทธ๋๋จธ์ค] 3์ฐจ ์์ถ swift (0) | 2023.03.22 |
[ํ๋ก๊ทธ๋๋จธ์ค] swift ์คํฐ์ปค ๋ชจ์ผ๊ธฐ(2) (0) | 2023.03.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] swift ์ง๊ฒ๋ค๋ฆฌ ๊ฑด๋๊ธฐ (0) | 2023.03.02 |