BOJ: #3048 - ๊ฐ๋ฏธ
๋ ๊ทธ๋ฃน์ ๋ํ ๋, ํํ์ ์ด์ฉํด์ ๋ฐฉํฅ์ ๊ฐ์ด ์ ์ฅํ๋ค. false
๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ, true
๋ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ ๊ฐ๋ฏธ๋ฅผ ๋ปํ๋ค.
์ฒ์์ ์ด์ค for
๋ฌธ์ ์ด์ฉํ๋๋ฐ, ๊ฐ๋ฏธ๋ค์ ์ค์ํ๋ ๊ฒฝ์ฐ i
๋ฅผ ํ ๋ฒ ๋ ๊ฑด๋๋ฐ์ด์ผ ํด์ while
๋ฌธ์ผ๋ก ๋ณ๊ฒฝํ๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ก ๋ฐฉํฅ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ์ ์ ๋ถ ์ค์ํด์คฌ์๋๋ฐ, 7% ์ฏค์์ ํ๋ ค์ ๋ค๋ฅธ ํ์ด๋ฅผ ์ฐพ์๋ดค๋ค. ์ผ์ชฝ์ผ๋ก ์ด๋ํ๊ณ ์๋ ๊ฐ๋ฏธ๋ ๋ง๋ ๊ฒฝ์ฐ์๋ ๋ฐ๊ฟ์ค ํ์๊ฐ ์๋ค๋ ๊ฑฐ์๋ค. (←, →) ์๋ก ๋ง๋์ง ์์ผ๋๊น! ๊ทธ๋์ ์์ ์๋ ๊ฐ๋ฏธ๊ฐ ์ค๋ฅธ์ชฝ์ ๋ณด๊ณ ์์ ๋ ์กฐ๊ฑด๋ ์ถ๊ฐํ๋ค.
๋ฌธ์
https://www.acmicpc.net/problem/3048
๋ด๊ฐ ์์ฑํ ์ฝ๋
Swift
let n = readLine()!.split(separator: " ").map { Int(String($0))! }
let a = Array(readLine()!.reversed())
let b = Array(readLine()!)
let t = Int(readLine()!)!
var c = a.map { return ($0, false) } + b.map { return ($0, true) }
let m = n.reduce(0, +)
for _ in 0..<t {
var i = 1
while i < m {
if c[i].1 != c[i-1].1 && c[i - 1].1 == false { // ๋ฐฉํฅ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ
c.swapAt(i, i-1)
i += 1
}
i += 1
}
}
print(c.map { String($0.0) }.joined())
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote