๋ฐฑ์ค ๋ฌธ์ ๋ชจ์
๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/1406
1406๋ฒ: ์๋ํฐ
์ฒซ์งธ ์ค์๋ ์ด๊ธฐ์ ํธ์ง๊ธฐ์ ์ ๋ ฅ๋์ด ์๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ค. ์ด ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ N์ด๊ณ , ์์ด ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ๊ธธ์ด๋ 100,000์ ๋์ง ์๋๋ค. ๋์งธ ์ค์๋ ์ ๋ ฅํ ๋ช ๋ น์ด์ ๊ฐ์
www.acmicpc.net
๋ฌธ์
ํ ์ค๋ก ๋ ๊ฐ๋จํ ์๋ํฐ๋ฅผ ๊ตฌํํ๋ ค๊ณ ํ๋ค. ์ด ํธ์ง๊ธฐ๋ ์์ด ์๋ฌธ์๋ง์ ๊ธฐ๋กํ ์ ์๋ ํธ์ง๊ธฐ๋ก, ์ต๋ 600,000๊ธ์๊น์ง ์
๋ ฅํ ์ ์๋ค.
์ด ํธ์ง๊ธฐ์๋ '์ปค์'๋ผ๋ ๊ฒ์ด ์๋๋ฐ, ์ปค์๋ ๋ฌธ์ฅ์ ๋งจ ์(์ฒซ ๋ฒ์งธ ๋ฌธ์์ ์ผ์ชฝ), ๋ฌธ์ฅ์ ๋งจ ๋ค(๋ง์ง๋ง ๋ฌธ์์ ์ค๋ฅธ์ชฝ), ๋๋ ๋ฌธ์ฅ ์ค๊ฐ ์์์ ๊ณณ(๋ชจ๋ ์ฐ์๋ ๋ ๋ฌธ์ ์ฌ์ด)์ ์์นํ ์ ์๋ค. ์ฆ ๊ธธ์ด๊ฐ L์ธ ๋ฌธ์์ด์ด ํ์ฌ ํธ์ง๊ธฐ์ ์
๋ ฅ๋์ด ์์ผ๋ฉด, ์ปค์๊ฐ ์์นํ ์ ์๋ ๊ณณ์ L+1๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์๋ค.
์ด ํธ์ง๊ธฐ๊ฐ ์ง์ํ๋ ๋ช
๋ น์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
L | ์ปค์๋ฅผ ์ผ์ชฝ์ผ๋ก ํ ์นธ ์ฎ๊น (์ปค์๊ฐ ๋ฌธ์ฅ์ ๋งจ ์์ด๋ฉด ๋ฌด์๋จ) |
D | ์ปค์๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ ์ฎ๊น (์ปค์๊ฐ ๋ฌธ์ฅ์ ๋งจ ๋ค์ด๋ฉด ๋ฌด์๋จ) |
B | ์ปค์ ์ผ์ชฝ์ ์๋ ๋ฌธ์๋ฅผ ์ญ์ ํจ (์ปค์๊ฐ ๋ฌธ์ฅ์ ๋งจ ์์ด๋ฉด ๋ฌด์๋จ) ์ญ์ ๋ก ์ธํด ์ปค์๋ ํ ์นธ ์ผ์ชฝ์ผ๋ก ์ด๋ํ ๊ฒ์ฒ๋ผ ๋ํ๋์ง๋ง, ์ค์ ๋ก ์ปค์์ ์ค๋ฅธ์ชฝ์ ์๋ ๋ฌธ์๋ ๊ทธ๋๋ก์ |
P $ | $๋ผ๋ ๋ฌธ์๋ฅผ ์ปค์ ์ผ์ชฝ์ ์ถ๊ฐํจ |
์ด๊ธฐ์ ํธ์ง๊ธฐ์ ์ ๋ ฅ๋์ด ์๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๊ณ , ๊ทธ ์ดํ ์ ๋ ฅํ ๋ช ๋ น์ด๊ฐ ์ฐจ๋ก๋ก ์ฃผ์ด์ก์ ๋, ๋ชจ๋ ๋ช ๋ น์ด๋ฅผ ์ํํ๊ณ ๋ ํ ํธ์ง๊ธฐ์ ์ ๋ ฅ๋์ด ์๋ ๋ฌธ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋จ, ๋ช ๋ น์ด๊ฐ ์ํ๋๊ธฐ ์ ์ ์ปค์๋ ๋ฌธ์ฅ์ ๋งจ ๋ค์ ์์นํ๊ณ ์๋ค๊ณ ํ๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ์ด๊ธฐ์ ํธ์ง๊ธฐ์ ์ ๋ ฅ๋์ด ์๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ค. ์ด ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ N์ด๊ณ , ์์ด ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ๊ธธ์ด๋ 100,000์ ๋์ง ์๋๋ค. ๋์งธ ์ค์๋ ์ ๋ ฅํ ๋ช ๋ น์ด์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ ์ M(1 ≤ M ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ์ ์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ๊ฑธ์ณ ์ ๋ ฅํ ๋ช ๋ น์ด๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค. ๋ช ๋ น์ด๋ ์์ ๋ค ๊ฐ์ง ์ค ํ๋์ ํํ๋ก๋ง ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋ชจ๋ ๋ช ๋ น์ด๋ฅผ ์ํํ๊ณ ๋ ํ ํธ์ง๊ธฐ์ ์ ๋ ฅ๋์ด ์๋ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ค.
์ ์ถ๋ ฅ ์์
์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ
- ์๋ฃ๊ตฌ์กฐ
- ์คํ
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ
๋ฌธ์ ํ์ด
- ํธ์ง๊ธฐ์ ์ ๋ ฅ๋๋ ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก left์ ์ ์ฅํ๋ค.
- Character ๋ฐฐ์ด right๋ฅผ ์์ฑํ๋ค.
- ๋ช
๋ น์ด๋ฅผ ์
๋ ฅ๋ฐ์ switch๋ฌธ์ผ๋ก ๊ฐ ์
๋ ฅ์ ๋ง๋ ๋์์ ์ํํ๋ค.
- "L"์ด ์ ๋ ฅ๋ ๊ฒฝ์ฐ left๊ฐ ๋น์ด์์ง ์์ผ๋ฉด right์ left์ ๋ง์ง๋ง ์์๋ฅผ pop ํด์ ์ถ๊ฐํ๋ค.
- "D"๊ฐ ์ ๋ ฅ๋ ๊ฒฝ์ฐ right๊ฐ ๋น์ด์์ง ์์ผ๋ฉด left์ right์ ๋ง์ง๋ง ์์๋ฅผ pop ํด์ ์ถ๊ฐํ๋ค.
- "B"๊ฐ ์ ๋ ฅ๋ ๊ฒฝ์ฐ left๊ฐ ๋น์ด์์ง ์์ผ๋ฉด left์ ๋ง์ง๋ง ์์๋ฅผ ์ญ์ ํ๋ค.
- "P"๊ฐ ์ ๋ ฅ๋ ๊ฒฝ์ฐ left์ ๋ฌธ์๋ฅผ ์ถ๊ฐํ๋ค.
- left๋ฐฐ์ด์ right๋ฐฐ์ด์ ๋ค์ง์ด์ ๋ํ ํ String์ผ๋ก ๋ณํํด ์ถ๋ ฅํ๋ค.
์์ค์ฝ๋
var left = Array(readLine()!)
var right: [Character] = []
let n = Int(readLine()!)!
for _ in 0..<n {
let edit = readLine()!
switch edit {
case "L":
if !left.isEmpty {
right.append(left.removeLast())
}
case "D" :
if !right.isEmpty {
left.append(right.removeLast())
}
case "B" :
if !left.isEmpty {
left.removeLast()
}
default:
left.append(edit.last!)
}
}
print(String(left+right.reversed()))
- 260ms ์์
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ๋ฐฑ์ค 1874๋ฒ - ์คํ ์์ด (0) | 2023.03.29 |
---|---|
[Swift] ๋ฐฑ์ค 10773๋ฒ - ์ ๋ก (1) | 2023.03.29 |
[Swift] ๋ฐฑ์ค 3273๋ฒ - ๋ ์์ ํฉ (0) | 2023.03.26 |
[Swift] ๋ฐฑ์ค 1475๋ฒ - ๋ฐฉ ๋ฒํธ (0) | 2023.03.26 |
[Swift] ๋ฐฑ์ค 1919๋ฒ - ์ ๋๊ทธ๋จ ๋ง๋ค๊ธฐ (0) | 2023.03.25 |