ํ๋ก๊ทธ๋๋จธ์ค - ๋ด์ค ํด๋ฌ์คํฐ๋ง(Swift)
2022. 10. 15. 14:30ใํ๋ก๊ทธ๋๋จธ์ค-Swift
ํ๋ก๊ทธ๋๋จธ์ค - ๋ด์ค ํด๋ฌ์คํฐ๋ง(Swift)
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/17677
๋์ ํ์ด
์ฒ์์๋ Set ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด์ ํ์ด๋ณด๋ ค๊ณ ํ๋๋ฐ ์ค๋ณต๋ ํ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ์ด์ฉํ๋ค.
๋จผ์ allSatisfy๋ฉ์๋๋ฅผ ์ด์ฉํด์ ๋ฌธ์์ด์ด ์ ๋ถ ๋ฌธ์์ธ ๊ฒฝ์ฐ์๋ง ๋ด์์ค ๋ค์ ์ฒซ๋ฒ์งธ ๋ฐฐ์ด์ ํ์ํ๋ฉด์ ๋๋ฒ์งธ ๋ฐฐ์ด์ ๊ฐ์ด ๋ด๊ฒจ์๋ค๋ฉด ์ ๊ฑฐ, ์๋๋ฉด ๋์ด๊ฐ๋ ํ์์ผ๋ก ๋ง๋ค์๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๋ฌธ์ ์ ๋์ํฌ์ธํธ(?)๋ ์งํฉ A์ ์งํฉ B๊ฐ ๊ณต์งํฉ์ผ ๋๋ 1์ ๋ฆฌํดํ๋ ๊ฒ์ธ๋ฐ ์ด๋ ๊ต์งํฉ๋ 0์ด๊ณ ํฉ์งํฉ๋ 0์ธ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค. ๊ทธ๋์ ์ด ๋ถ๋ถ์ ๋ถ๋ฆฌํด์ ํ์ด์ค์ผํ๋ค.
import Foundation
func solution(_ str1:String, _ str2:String) -> Int {
var resultArr1: [String] = []
var resultArr2: [String] = []
var filteredArr1 = Array(str1.uppercased()).map{ String($0)}
var filteredArr2 = Array(str2.uppercased()).map{ String($0)}
var interCount = 0
for (i, val) in filteredArr1.enumerated() {
if i == filteredArr1.count-1 {
break
}
let compositionStr = val + filteredArr1[i+1]
if compositionStr.allSatisfy({ $0.isLetter }){
resultArr1.append(compositionStr)
}
}
for (i, val) in filteredArr2.enumerated() {
if i == filteredArr2.count-1 {
break
}
let compositionStr = val + filteredArr2[i+1]
if compositionStr.allSatisfy({ $0.isLetter }){
resultArr2.append(compositionStr)
}
}
for x in resultArr1 {
if resultArr2.contains(x) {
resultArr1.remove(at: resultArr1.firstIndex(of: x)!)
resultArr2.remove(at: resultArr2.firstIndex(of: x)!)
interCount += 1
}
}
let sum = interCount + resultArr1.count + resultArr2.count
return sum == 0 ? 65536 : Int((Double(interCount) / Double(sum)) * 65536)
}
'ํ๋ก๊ทธ๋๋จธ์ค-Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ์์ถ(Swift) (0) | 2022.10.18 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ์คํ์ฑํ ๋ฐฉ(Swift) (0) | 2022.10.17 |
ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฆฐํฐ(Swift) (0) | 2022.10.14 |
ํ๋ก๊ทธ๋๋จธ์ค - ๊ธฐ๋ฅ๊ฐ๋ฐ(Swift) (0) | 2022.10.14 |
ํ๋ก๊ทธ๋๋จธ์ค - ์์ฅ(Swift) (0) | 2022.10.14 |