์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- dp
- ๋ฐฑํธ๋ํน
- ๋์ ํฉ
- ์ฝํ
- ์๊ณ ๋ฆฌ์ฆ
- ๋นํธ์ฐ์ฐ์
- BFS
- ์ด์งํ์
- WebView
- ๋ถํ ์ ๋ณต
- ์คํ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- dfs
- Queue
- WebApp
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ถํ ํ์
- ๋ถํ ์ ๋ณต
- SwiftUI
- Swift
- ๋ฌธ์์ด
- ๋ธ๋ฃจํธํฌ์ค
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ์ฝ๋ฉํ ์คํธ
- ๋ฐฑ์ค
- ์์
- ios
- Today
- Total
MUKER_DEV with iOS
[swift] ๋ฐฑ์ค - 2164๋ฒ: ์นด๋2 ๋ณธ๋ฌธ
2164๋ฒ: ์นด๋2
N์ฅ์ ์นด๋๊ฐ ์๋ค. ๊ฐ๊ฐ์ ์นด๋๋ ์ฐจ๋ก๋ก 1๋ถํฐ N๊น์ง์ ๋ฒํธ๊ฐ ๋ถ์ด ์์ผ๋ฉฐ, 1๋ฒ ์นด๋๊ฐ ์ ์ผ ์์, N๋ฒ ์นด๋๊ฐ ์ ์ผ ์๋์ธ ์ํ๋ก ์์๋๋ก ์นด๋๊ฐ ๋์ฌ ์๋ค. ์ด์ ๋ค์๊ณผ ๊ฐ์ ๋์์ ์นด๋๊ฐ
www.acmicpc.net
๋ฌธ์ ํธ๋ ๋ฐ ์์ด ๋์์ด ๋๋๋ก ๋์ ํ์ด์ ๊ฐ์ ๋ ํ์ด๋ฅผ ์ฌ๋ฆฝ๋๋ค.
๋ํ ํ์ด ํ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๊ณ ์ฐธ๊ณ ํ ๋งํ ํ์ด๋ ์ฌ๋ฆฝ๋๋ค.
- ๋ฌธ์ ์ ๋ฐ๋ผ ๋์ ํ์ด๋ง ์์ ์ ์์ต๋๋ค.
- ํด๋น ํ์ด๋ค์ ํ์ด ์ค ํ๋์ผ ๋ฟ ์ต์ ์ ํ์ด๋ ์๋ ์ ์์ต๋๋ค.
๋ฌธ์ ์ค๋ช
- ์ฒซ ๋ฒ์งธ ์ซ์๋ ์ง์ฐ๊ณ , ๋ ๋ฒ์งธ ์ซ์๋ ์ ์ผ ๋ค๋ก ๋ณด๋ ๋๋ค.(์์์ ์ฌ๋ผ์ง)
ํด๋น ๋ช ๋ น์ ๋ฐ๋ณตํ์ฌ ๋ง์ง๋ง ๋จ๋ ํ๋์ ์ซ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
- ๊ธฐ๋ณธ์ ์ธ ํ์ ํํ๋ก ํ๋ฉด๋์ง๋ง
์ซ์๋ฅผ ์ง์ฐ๋ ๊ณผ์ ์์ removeํจ์๋ฅผ ์ฐ๊ฒ ๋๋ฉด
์๊ฐ ์ด๊ณผ๊ฐ ๋ฉ๋๋ค.
- ์ด์ ๋ ์ธ๋ฑ์ค ์ ์ฒด๋ฅผ ์์ผ๋ก ๋น๊ฒจ์ค๋ ๊ณผ์ ์์
O(n)๋งํผ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ๋ฐ๋ผ ์๊ฐ์ ํ์ ํต๊ณผํ ์ ์๊ฒ ์ฝ๋๋ฅผ ์ง๋ฉด ๋๊ฒ ์ต๋๋ค.
๋์ ํ์ด
import Foundation
let N = Int(readLine()!)!
var card: [Int?] = (1...N).map { $0 }
var head = 0
while true {
guard card.count != 1 else { print(1); break }
card[head] = nil
if card[card.count-2] == nil { print(card[card.count-1]!); break }
card.append(card[head+1])
card[head+1] = nil
head += 2
}
- head๋ผ๋ ์ธ๋ฑ์ค ๊ธฐ์ต๋ณ์๋ฅผ ๋ง๋ค์์ต๋๋ค.
ํด๋น ๋ณ์๋ ๋ฐฐ์ด์ด remove ๋๋ ๊ฒ ์๋
nil๋ก ๋ณํ๊ธฐ ๋๋ฌธ์
๋จ์ ์๋ ๋ฐฐ์ด์ ๊ฑด๋๋ฐ์ด์ฃผ๊ธฐ ์ํด ์์ฑํ์ต๋๋ค.
- head๋ ํ ๋ฒ์ ๋ฐ๋ณต์์ 2๊ฐ์ ๊ฐ์ nil๋ก ๋ง๋ค๊ธฐ ๋๋ฌธ์
๋ฐ๋ณต๋ง๋ค + 2์ฉ ๋ํด์ฃผ๊ฒ ๋ฉ๋๋ค.
- ๋ฐ๋ณต๋ฌธ์ ๋๋ค ๋ง์ง๋ง์์ 2๋ฒ์งธ์ธ ๊ฐ์ด nil์ด ๋๋ค๋ฉด
๊ฐ์ ํ๋๊ฐ ๋จ์๋ค๋ ๊ฒ์ด๊ณ
ํด๋น ๋ง์ง๋ง๊ฐ์ ์ถ๋ ฅํด ์ฃผ๋ฉด ๋ฉ๋๋ค.
- ๋ง์ฝ N์ด 1์ด๋ผ๋ฉด ๋ฐํ์์ค๋ฅ๊ฐ ๋จ๊ธฐ ๋๋ฌธ์
guard๋ฌธ์ผ๋ก count๊ฐ 1์ด๋ผ๋ฉด 1์ ์ถ๋ ฅํ๊ฒ ์์ธ๋ฅผ ๋์ต๋๋ค.
์ฐธ๊ณ ํ ๋งํ ํ์ด
var N = Int(readLine()!)!
var Q = (1...N).map{$0}
var cursor = 0
while cursor < N-1 {
cursor += 2
Q.append(Q[cursor-1])
N+=1
}
print(Q[cursor])
- while๋ฌธ์ ์กฐ๊ฑด์ ์ค์ ํธ๋
๋ ๊น๋ํ๊ฒ ์ฝ๋๊ฐ ๋์ฌ ์ ์๋ค์.
let N = Int(readLine()!)!
var i = 1
while true {
if N >= i , N < i*2 {
break
}else{
i *= 2
}
}
let remain = N-i
if remain == 0 {
print(i)
}else {
print(2*remain)
}
- ๋ญ๊ฐ ํ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํ ์ ์์ ๊ฑฐ ๊ฐ์๋๋ฐ
์๊ณ ๋ฆฌ์ฆ์ด ์๊ฐ๋์ง ์์์ ์๋๋ ๋ชปํ์์ต๋๋ค.
- ํ์ง๋ง ์ญ์ ๋๊ตฐ๊ฐ๋ ํ์๋ค์..ใ ใ
'๐ค ์๊ณ ๋ฆฌ์ฆ > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ๋ฐฑ์ค - 9012๋ฒ: ๊ดํธ (0) | 2023.02.14 |
---|---|
[swift] ๋ฐฑ์ค - 4949๋ฒ: ๊ท ํ์กํ ์ธ์ (0) | 2023.02.14 |
[swift] ๋ฐฑ์ค - 1920๋ฒ: ์ ์ฐพ๊ธฐ (0) | 2023.02.13 |
[swift] ๋ฐฑ์ค - 7568๋ฒ: ๋ฉ์น (0) | 2023.02.12 |
[swift] ๋ฐฑ์ค - 1018๋ฒ: ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (0) | 2023.02.11 |