์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
Tags
- WebView
- ๋ถํ ์ ๋ณต
- ์ฝ๋ฉํ ์คํธ
- SwiftUI
- ๋ฐฑ์ค
- ์๊ณ ๋ฆฌ์ฆ
- dfs
- ios
- BFS
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ๋ถํ ํ์
- dp
- ๋์ ํฉ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ธ๋ฃจํธํฌ์ค
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ๋นํธ์ฐ์ฐ์
- Swift
- ์ด์งํ์
- WebApp
- Queue
- ์์
- ๋ถํ ์ ๋ณต
- ์คํ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑํธ๋ํน
- ๋ฌธ์์ด
- ์ฝํ
Archives
- Today
- Total
MUKER_DEV with iOS
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฌธ์์ด ์์ถ ๋ณธ๋ฌธ
๐ค ์๊ณ ๋ฆฌ์ฆ/programmers
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฌธ์์ด ์์ถ
MUKER 2023. 5. 25. 23:55ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์ฑ๊ณต ํ์ด
func solution(_ s:String) -> Int {
let sCount = s.count
let arr = Array(s)
var result = sCount
// testcase 5๋ฒ์ ๋ฌธ์์ด ๊ธธ์ด๊ฐ 1 ์ด๋ผ ๋ฐ๋ก ๋นผ์ค
if sCount == 1 { return 1 }
// 1๋ถํฐ sCount์ ์ ๋ฐ๋งํผ ๋ฐ๋ณต, i๋ ์ชผ๊ฐ๋ ๋ฌธ์์ด์ ๊ธธ์ด
for i in 1...sCount/2 {
// ๋ฌธ์์ด ์ชผ๊ฐ์ store์ ๋ฃ๊ธฐ
var store = [String]()
for j in stride(from: 0, to: sCount, by: i) {
if sCount-j < i { // ๋ง์ง๋ง์ด ๋๋ฝ๊ฒ ๋จ๋ ๊ฒฝ์ฐ
store.append(String(arr[j...]))
} else {
store.append(String(arr[j..<j+i]))
}
}
var compact = ""
var temp = ""
var count = 1
// ์ต์ข
๋ฌธ์์ด ๋ง๋ค๊ธฐ
for j in 0...store.count {
// ๋ง์ง๋ง ๋ฌธ์์ด ๊ณ์ฐ
if j == store.count {
if count == 1 {
compact += temp
} else {
compact += "\(count)\(temp)"
}
break
}
if j == 0 { temp = store[0]; continue }
if temp != store[j] {
if count == 1 {
compact += temp
temp = store[j]
} else {
compact += "\(count)\(temp)"
temp = store[j]
count = 1
}
} else {
count += 1
}
}
result = min(result,compact.count)
}
return result
}
ํ์ด ํค์๋
์ด๊ฒ ์ข์ํ์ด์ธ์ง๋ ๋ค๋ฅธ์ฌ๋๋ค์ ํ์ด๋ฅผ ๋ณด์ง ์์์ ๋ชจ๋ฅด๊ฒ ๋๋ฐ.. ์ต์ ์ ๋คํ๋ค...
์ชผ๊ฐ์ง๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ 1๋ถํฐ s.count/2 ๋งํผ for๋ฌธ์ผ๋ก ๋ฐ๋ณตํด์ i์ ๋ฃ์ด๋๊ณ
swift๋ ๋ฌธ์์ด๋ณด๋จ ๋ฐฐ์ด์ index๋ก ๋ค๋ฃจ๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์
index๋ฅผ ํตํด ๋ฌธ์์ด์ ๋ฐ์ ์ฌ๋ ๋ฐฐ์ด๋ก ์ชผ๊ฐฐ๋ค.
strideํจ์๋ฅผ ์ฌ์ฉํด์ ์ชผ๊ฐ์ง๋ ๋ฌธ์์ด์ ๊ธธ์ด๋งํผ ๊ฑด๋ ๋ฐ๋ฉฐ
๋ฌธ์์ด์ ์์ index๋ฅผ ๊ตฌํด์คฌ๋ค.
๋ฐ๋ผ์ String(arr(์์์ธ๋ฑ์ค...์์์ธ๋ฑ์ค+i)) ๋ ์ํ๋ ๋ฌธ์์ด์ ๋ฐํํ๋ค.
๋ ์์ธํ ํ์ด๋ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
'๐ค ์๊ณ ๋ฆฌ์ฆ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ฃผ์ฌ์ ๊ฒ์ 3 (0) | 2023.06.07 |
---|---|
[swift] ํ๋ก๊ทธ๋๋จธ์ค - [์นด์นด์ค ์ธํด] ์์ ์ต๋ํ (0) | 2023.05.29 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ ํ ํฉ ๊ฐ๊ฒ ๋ง๋ค๊ธฐ (1) | 2023.05.24 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ฃผ์ฌ์ ๊ฒ์ 1 (0) | 2023.05.22 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๊ณต์ ์ฐ์ฑ (1) | 2023.05.12 |