์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ์ด์งํ์
- ์คํ
- Swift
- ๋ฌธ์์ด
- ๋ถํ ์ ๋ณต
- ๋ฐฑํธ๋ํน
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- BFS
- WebApp
- Queue
- dp
- ์ฝ๋ฉํ ์คํธ
- ๋ธ๋ฃจํธํฌ์ค
- ๋ถํ ์ ๋ณต
- ios
- ๋ถํ ํ์
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ๋นํธ์ฐ์ฐ์
- ๋์ ํฉ
- SwiftUI
- dfs
- ๋ฐฑ์ค
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก๊ทธ๋๋จธ์ค
- WebView
- ์ฝํ
- ์์
- Today
- Total
MUKER_DEV with iOS
[swift] ๋ฐฑ์ค - 3048๋ฒ: ๊ฐ๋ฏธ ๋ณธ๋ฌธ
๋ฌธ์ ๋งํฌ
๋ฌธ์
๊ฐ๋ฏธ๊ฐ ์ผ๋ ฌ๋ก ์ด๋ํ ๋, ๊ฐ์ฅ ์์ ๊ฐ๋ฏธ๋ฅผ ์ ์ธํ ๋๋จธ์ง ๊ฐ๋ฏธ๋ ๋ชจ๋ ์์ ๊ฐ๋ฏธ๊ฐ ํ ๋ง๋ฆฌ์ฉ ์๋ค.
์๋ก ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ ๋ ๊ฐ๋ฏธ ๊ทธ๋ฃน์ด ์ข์ ๊ธธ์์ ๋ง๋ฌ์ ๋, ๊ฐ๋ฏธ๋ ์ด๋ป๊ฒ ์ง๋๊ฐ๊น?
์ต๊ทผ ์ฐ๊ตฌ์ ์ํ๋ฉด ์์ ๊ฐ์ ์ํฉ์ด ๋ฒ์ด์ง๋ฉด ๊ฐ๋ฏธ๋ ์๋ก๋ฅผ ์ ํํด์ ๋์ด๊ฐ๋ค๊ณ ํ๋ค.
์ฆ, ๋ ๊ทธ๋ฃน์ด ๋ง๋ฌ์ ๋, 1์ด์ ํ๋ฒ์ฉ ๊ฐ๋ฏธ๋ ์๋ก๋ฅผ ๋ฐ์ด ๋๋๋ค. (ํ ๊ฐ๋ฏธ๊ฐ ๋ค๋ฅธ ๊ฐ๋ฏธ๋ฅผ ๋ฐ์ด ๋๊ณ , ๋ค๋ฅธ ๊ฐ๋ฏธ๋ ๊ทธ๋ฅ ์ ์งํ๋ค๊ณ ์๊ฐํด๋ ๋๋ค)
ํ์ง๋ง ๋ชจ๋ ๊ฐ๋ฏธ๊ฐ ์ ํ๋ฅผ ํ๋ ๊ฒ์ ์๋๋ค. ์์ ์ ์์ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์์ง์ด๋ ๊ฐ๋ฏธ๊ฐ ์๋ ๊ฒฝ์ฐ์๋ง ์ ํ๋ฅผ ํ๊ฒ ๋๋ค.
์ฒซ ๋ฒ์งธ ๊ทธ๋ฃน์ด ABC๋ก ์์ง์ด๊ณ , ๋ ๋ฒ์งธ ๊ทธ๋ฃน์ ๊ฐ๋ฏธ๊ฐ DEF์์ผ๋ก ์์ง์ธ๋ค๊ณ ํ์. ๊ทธ๋ผ, ์ข์ ๊ธธ์์ ๋ง๋ฌ์ ๋, ๊ฐ๋ฏธ์ ์์๋ CBADEF๊ฐ ๋๋ค. 1์ด๊ฐ ์ง๋ฌ์ ๋๋ ์์ ์ ์์ ๋ฐ๋๋ฐฉํฅ์ผ๋ก ์์ง์ด๋ ๊ฐ๋ฏธ๊ฐ ์๋ ๊ฐ๋ฏธ๋ A์ D๋ค. ๋ฐ๋ผ์, ๊ฐ๋ฏธ์ ์์๋ CBDAEF๊ฐ ๋๋ค. 2์ด๊ฐ ๋์์ ๋, ์์ ์ ์์ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์์ง์ด๋ ๊ฐ๋ฏธ๋ B,D,A,E๊ฐ ์๋ค. ๋ฐ๋ผ์, ๊ฐ๋ฏธ์ ์์๋ CDBEAF๊ฐ ๋๋ค.
T์ด๊ฐ ์ง๋ ํ์ ๊ฐ๋ฏธ์ ์์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ์ฒซ ๋ฒ์งธ ๊ทธ๋ฃน์ ๊ฐ๋ฏธ์ ์ N1๊ณผ ๋ ๋ฒ์งธ ๊ทธ๋ฃน์ ๊ฐ๋ฏธ์ ์ N2๊ฐ ์ฃผ์ด์ง๋ค.
๋ค์ ๋ ๊ฐ ์ค์๋ ์ฒซ ๋ฒ์งธ ๊ทธ๋ฃน๊ณผ ๋ ๋ฒ์งธ ๊ทธ๋ฃน์ ๊ฐ๋ฏธ์ ์์๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ๊ฐ๋ฏธ๋ ์ํ๋ฒณ ๋๋ฌธ์๋ก ํํํ ์ ์์ผ๋ฉฐ, ๋ ๊ทธ๋ฃน์์ ์ค๋ณต๋๋ ์ํ๋ฒณ์ ์๋ค.
๋ง์ง๋ง ์ค์๋ T๊ฐ ์ฃผ์ด์ง๋ค. (0 ≤ T ≤ 50)
์ถ๋ ฅ
T์ด๊ฐ ์ง๋ ํ์ ๊ฐ๋ฏธ์ ์์๋ฅผ ์ถ๋ ฅํ๋ค. ์ฒซ ๋ฒ์งธ ๊ฐ๋ฏธ ๊ทธ๋ฃน์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์์ง์ด๊ณ , ๋ ๋ฒ์งธ ๊ทธ๋ฃน์ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์์ง์ธ๋ค.
์์
์ฑ๊ณต ํ์ด
import Foundation
let N = readLine()!.split { $0==" " }.map { Int($0)! }
var ant = Array(readLine()!).reversed() + Array(readLine()!)
var index = Array(repeating: 0, count: N[0]) + Array(repeating: 1, count: N[1])
for _ in 0..<Int(readLine()!)! {
var now = 0
while now < ant.count-1 {
if index[now] == index[now+1] || index[now] > index[now+1] {
now += 1
} else {
index.swapAt(now, now+1)
ant.swapAt(now, now+1)
now += 2
}
}
}
print(String(ant))
ํ์ด ํค์๋
- ๊ฐ๋ฏธ๋ค์ ์๋ก ๋ง์ฃผ์น๋ฉฐ ์ง๋๊ฐ๊ธฐ ๋๋ฌธ์ ์ฒซ๋ฒ์งธ ๊ทธ๋ฃน์ ๊ฑฐ๊พธ๋ก ์ธ์ ์ ์ฅํ์ต๋๋ค.
- ์ฒซ๋ฒ์งธ ๊ทธ๋ฃน๊ณผ ๋๋ฒ์งธ ๊ทธ๋ฃน์์ ์๋ณํ ์ ์๊ฒ index๋ผ๋ ๋ฐฐ์ด์ ๋ง๋ค์์ต๋๋ค.
- ๊ฐ๋ฏธ๋ค์ ์์ฐจ์ ์ผ๋ก ํ์ํ๋ฉด์ ํ์ฌ index์ ๋ค์ ์์์ ๊ฐ๋ฏธ๊ฐ ๊ฐ๊ฑฐ๋, ํ์ฌ index์ ๊ฐ๋ฏธ๊ฐ ๊ทธ๋ฃน 1์ผ ๊ฒฝ์ฐ๋ ๋ค์ index๋ก ํ์์ ๊ทธ๋๋ก ์งํํ๊ณ
- ํ์ฌ index์ ๊ฐ๋ฏธ์ ๋ค์ ์์์ ๊ฐ๋ฏธ๊ฐ ๋ค๋ฅด๊ฑฐ๋ ํ์ฌ index์ ๊ฐ๋ฏธ๊ฐ ๊ทธ๋ฃน0์ผ๊ฒฝ์ฐ ์๋ก๋ฅผ ๋ฐ๊ฟ์ฃผ๊ณ index ์์๋ฅผ ํ๋ฒ ๊ฑด๋ ๋ฐ์ด ํ์์ ์งํํ๊ฒ ๋ฉ๋๋ค.
'๐ค ์๊ณ ๋ฆฌ์ฆ > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ๋ฐฑ์ค - 16439๋ฒ: ์นํจ์นํจ์นํจ (0) | 2023.09.05 |
---|---|
[swift] ๋ฐฑ์ค - 25192๋ฒ: ์ธ์ฌ์ฑ ๋ฐ์ ๊ณฐ๊ณฐ์ด (0) | 2023.09.04 |
[swift] ๋ฐฑ์ค - 1308๋ฒ: D-Day (0) | 2023.08.17 |
[swift] ๋ฐฑ์ค - 1010๋ฒ: ๋ค๋ฆฌ ๋๊ธฐ (0) | 2023.08.16 |
[swift] ๋ฐฑ์ค - 1021๋ฒ: ํ์ ํ๋ ํ (0) | 2023.08.11 |