๋ฌธ์ ์ค๋ช
์ฐฝ์์ด๋ ๊ฐ์ฐ์ด์ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์น๊ธฐ ์ํด์ ๊ฐ์ฐ์ด๊ฐ ์ฌ์ฉํ๋ ์ปดํจํฐ์ ํค๋ก๊ฑฐ๋ฅผ ์ค์นํ๋ค. ๋ฉฐ์น ์ ๊ธฐ๋ค๋ฆฐ ๋์ ์ฐฝ์์ด๋ ๊ฐ์ฐ์ด๊ฐ ๋น๋ฐ๋ฒํธ ์ฐฝ์ ์ ๋ ฅํ๋ ๊ธ์๋ฅผ ์ป์ด๋๋ค.
ํค๋ก๊ฑฐ๋ ์ฌ์ฉ์๊ฐ ํค๋ณด๋๋ฅผ ๋๋ฅธ ๋ช ๋ น์ ๋ชจ๋ ๊ธฐ๋กํ๋ค. ๋ฐ๋ผ์, ๊ฐ์ฐ์ด๊ฐ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ ๋, ํ์ดํ๋ ๋ฐฑ์คํ์ด์ค๋ฅผ ์ ๋ ฅํด๋ ์ ํํ ๋น๋ฐ๋ฒํธ๋ฅผ ์์๋ผ ์ ์๋ค.
๊ฐ์ฐ์ด๊ฐ ๋น๋ฐ๋ฒํธ ์ฐฝ์์ ์ ๋ ฅํ ํค๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ์ฐ์ด์ ๋น๋ฐ๋ฒํธ๋ฅผ ์์๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๊ฐ์ฐ์ด๋ ํค๋ณด๋๋ก ์ ๋ ฅํ ํค๋ ์ํ๋ฒณ ๋๋ฌธ์, ์๋ฌธ์, ์ซ์, ๋ฐฑ์คํ์ด์ค, ํ์ดํ์ด๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ฐ์ฐ์ด๊ฐ ์ ๋ ฅํ ์์๋๋ก ๊ธธ์ด๊ฐ L์ธ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ค. (1 ≤ L ≤ 1,000,000) ๊ฐ์ฐ์ด๊ฐ ๋ฐฑ์คํ์ด์ค๋ฅผ ์ ๋ ฅํ๋ค๋ฉด, '-'๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋ ์ปค์์ ๋ฐ๋ก ์์ ๊ธ์๊ฐ ์กด์ฌํ๋ค๋ฉด, ๊ทธ ๊ธ์๋ฅผ ์ง์ด๋ค. ํ์ดํ์ ์ ๋ ฅ์ '<'์ '>'๋ก ์ฃผ์ด์ง๋ค. ์ด๋๋ ์ปค์์ ์์น๋ฅผ ์์ง์ผ ์ ์๋ค๋ฉด, ์ผ์ชฝ ๋๋ ์ค๋ฅธ์ชฝ์ผ๋ก 1๋งํผ ์์ง์ธ๋ค. ๋๋จธ์ง ๋ฌธ์๋ ๋น๋ฐ๋ฒํธ์ ์ผ๋ถ์ด๋ค. ๋ฌผ๋ก , ๋์ค์ ๋ฐฑ์คํ์ด์ค๋ฅผ ํตํด์ ์ง์ธ ์๋ ์๋ค. ๋ง์ฝ ์ปค์์ ์์น๊ฐ ์ค์ ๋ง์ง๋ง์ด ์๋๋ผ๋ฉด, ์ปค์ ๋ฐ ์ปค์ ์ค๋ฅธ์ชฝ์ ์๋ ๋ชจ๋ ๋ฌธ์๋ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ ์ด๋ํ๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด์, ๊ฐ์ฐ์ด์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ค. ๋น๋ฐ๋ฒํธ์ ๊ธธ์ด๋ ํญ์ 0๋ณด๋ค ํฌ๋ค.
์ ์ถ๋ ฅ ์์
์ ๋ ฅ
2
<<BP<A>>Cd-
ThIsIsS3Cr3t
์ถ๋ ฅ
BAPC
ThIsIsS3Cr3t
๋ด ๋ฌธ์ ํ์ด
import Foundation
let count = Int(readLine()!)!
for _ in 0..<count {
var left = [Character]()
var right = [Character]()
let input = readLine()!
for i in input {
if i == "<" {
if !left.isEmpty { right.append(left.removeLast()) }
}
else if i == ">" {
if !right.isEmpty { left.append(right.removeLast()) }
}
else if i == "-" {
if !left.isEmpty { left.removeLast() }
}
else {
left.append(i)
}
}
print(String(left + right.reversed()))
}
- ์คํ์ผ๋ก ํ์๊ณ , ์์ ํ์ดํ #1406 ์๋ํฐ ๋ฌธ์ ์ ๋น์ทํ๋ค.
- ์ปค์๋ฅผ ๊ธฐ์ค, ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ผ๋ก ๋๋ left, right ๋ฐฐ์ด์ ์์ฑํด์ฃผ์๋ค.
- <๊ฐ ์
๋ ฅ๋ ๊ฒฝ์ฐ, left ๋ฐฐ์ด์ด ๋น์๋์ง ํ์ธ ํ removeLast()๋ฅผ ์ด์ฉํด
left์ ๋ง์ง๋ง ์์๋ฅผ ์ญ์ ํจ๊ณผ ๋์์ ํด๋น ์์๋ฅผ right ๋ฐฐ์ด์ ๋ง์ง๋ง์ ์ถ๊ฐํด์ฃผ์๋ค. - >๊ฐ ์
๋ ฅ๋ ๊ฒฝ์ฐ, right ๋ฐฐ์ด์ด ๋น์๋์ง ํ์ธ ํ removeLast()๋ฅผ ์ด์ฉํ์ฌ
right์ ๋ง์ง๋ง ์์์ ์ญ์ ์ ๋์์ ํด๋น ์์๋ฅผ left ๋ฐฐ์ด์ ๋ง์ง๋ง์ ์ถ๊ฐํ๋ค. - -๊ฐ ์
๋ ฅ๋ ๊ฒฝ์ฐ, left ๋ฐฐ์ด์ด ๋น์๋์ง ํ์ธ ํ, ๋น์ด์์ง ์์ ๊ฒฝ์ฐ
left ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ฅผ ์ญ์ ํด์ฃผ์๋ค. - ์์ ๋ช
๋ น ์ด์ธ๋ก ๋ค๋ฅธ ๋ฌธ์์ด์ด ์
๋ ฅ๋ ๊ฒฝ์ฐ๋ ์ค์ง์ ์ธ ๋น๋ฐ๋ฒํธ ์
๋ ฅ์ด๊ธฐ ๋๋ฌธ์
์ผ์ชฝ ๋ฐฐ์ด์ ์ถ๊ฐํด์ฃผ์๋ค.
๐ก ํผ๋๋ฐฑ
- ์์์ ์ธ๊ธํ ์๋ํฐ ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ๋์ ์ด ๋ฌธ์ ๋ฅผ ์ ํ๋ ๋ฐ๋ก ํ ์ ์์๋ค.
๋ฌธ์
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Algorithm] ์คํ BOJ #10828 (0) | 2021.08.04 |
---|---|
[Swift Algorithm] ์์ธํธ์ค ๋ฌธ์ BOJ #1158 (0) | 2021.07.30 |
[Swift Algorithm] ์๋ํฐ BOJ #1406 (0) | 2021.07.30 |
[Swift Algorithm] ๋ ์์ ํฉ BOJ #3273 (0) | 2021.07.30 |
[Swift Algorithm] ์ ๋๊ทธ๋จ ๋ง๋ค๊ธฐ BOJ #1919 (0) | 2021.07.30 |
๋๊ธ