์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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
- ๋ฐฑ์ค
- SwiftUI
- ์๊ณ ๋ฆฌ์ฆ
- ๋ถํ ์ ๋ณต
- ๋นํธ์ฐ์ฐ์
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ๋์ ํฉ
- ios
- ์ฝ๋ฉํ ์คํธ
- Queue
- ์์
- Swift
- dfs
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- WebView
- ์ด์งํ์
- WebApp
- ๋ธ๋ฃจํธํฌ์ค
- ๋ถํ ํ์
- dp
- ๋ฐฑํธ๋ํน
- ๋ฌธ์์ด
- ์คํ
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- BFS
- ๋ถํ ์ ๋ณต
- ์ฝํ
Archives
- Today
- Total
MUKER_DEV with iOS
[swift] ํ๋ก๊ทธ๋๋จธ์ค - [1์ฐจ] ๋ด์ค ํด๋ฌ์คํฐ๋ง ๋ณธ๋ฌธ
๐ค ์๊ณ ๋ฆฌ์ฆ/programmers
[swift] ํ๋ก๊ทธ๋๋จธ์ค - [1์ฐจ] ๋ด์ค ํด๋ฌ์คํฐ๋ง
MUKER 2023. 3. 22. 23:20ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
ํ์ด
func solution(_ str1:String, _ str2:String) -> Int {
let unrefinedStr1 = str1.uppercased().utf8.map { $0 } // ์์คํค์ฝ๋๋ก ๋ณํ
let unrefinedStr2 = str2.uppercased().utf8.map { $0 }
var refinedStr1 = [String]() // A~Z๋ง ํฌํจ๋ ์ ์ ๋ ๋ฐฐ์ด
var refinedStr2 = [String]()
var result = [0,0]
for i in 0..<unrefinedStr1.count-1 { // str1์์ A~Z๋ง ํฌํจํ ๋ฌธ์์ด ์ ์
let a = Int(unrefinedStr1[i])
let b = Int(unrefinedStr1[i+1])
if (65...90).contains(a) && (65...90).contains(b) {
refinedStr1.append(String(UnicodeScalar(a)!) + String(UnicodeScalar(b)!))
}
}
for i in 0..<unrefinedStr2.count-1 { // str2์์ A~Z๋ง ํฌํจํ ๋ฌธ์์ด ์ ์
let a = Int(unrefinedStr2[i])
let b = Int(unrefinedStr2[i+1])
if (65...90).contains(a) && (65...90).contains(b) {
refinedStr2.append(String(UnicodeScalar(a)!) + String(UnicodeScalar(b)!))
}
}
let dic1 = Dictionary(grouping: refinedStr1, by: { $0 })
let dic2 = Dictionary(grouping: refinedStr2, by: { $0 })
let intersection = Set(refinedStr1).intersection(refinedStr2) // ๊ต์งํฉ
let union = Set(refinedStr1).union(refinedStr2) // ํฉ์งํฉ
for i in intersection { // ๊ต์งํฉ์์ min์ธ ์ซ์๋ฅผ result[0]์ ๋ฃ๊ธฐ
result[0] += min(dic1[i]!.count,dic2[i]!.count)
}
for i in union { // ํฉ์งํฉ์์ max์ธ ์ซ์๋ฅผ result[1]์ ๋ฃ๊ธฐ
result[1] += max(dic1[i]?.count ?? 0,dic2[i]?.count ?? 0)
}
guard result != [0,0] else { return 65536 }
return Int(Double(result[0]) / Double(result[1]) * 65536)
}
ํ์ด ํค์๋
์์คํค ์ฝ๋ - String.UTF8
๊ต์งํฉ - Set().intersection()
ํฉ์งํฉ - Set().union()
'๐ค ์๊ณ ๋ฆฌ์ฆ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋คํธ์ํฌ (0) | 2023.03.24 |
---|---|
[swift] ํ๋ก๊ทธ๋๋จธ์ค - k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2023.03.23 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฆฐํฐ (0) | 2023.03.21 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ฐ์ ๋ถ๋ถ ์์ด ํฉ์ ๊ฐ์ (0) | 2023.03.20 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2023.03.17 |