제곱 구하기
let value = 3.0 // 소수점으로 선언해야 함
pow(value, 2) // 9.0
순열
func permutation<T: Comparable>(_ arr: [T], _ n: Int) -> [[T]] {
var result = [[T]]()
if arr.count < n { return result }
var visit = Array(repeating: false, count: arr.count)
func cycle(_ now: [T]) {
if now.count == n {
result.append(now)
return
}
for i in 0..<arr.count {
if visit[i] { continue }
visit[i] = true
cycle(now + [arr[i]])
visit[i] = false
}
}
cycle([])
return result
}
조합
func combination<T: Comparable>(_ arr: [T], _ n: Int) -> [[T]] {
var result = [[T]]()
if arr.count < n { return result }
func cycle(_ idx: Int, _ now: [T]) {
if now.count == n {
result.append(now)
return
}
for i in idx..<arr.count {
cycle(i + 1, now + [arr[i]])
}
}
cycle(0, [])
return result
}
// 사용법
combination(arr, n)
에라토스테네스의 체
var n = 100 // 최대 숫자
var primeArr = [Int](repeating: 0, count: n + 1)
for i in 2...n {
primeArr[i] = i
}
for i in 2...n {
if primeArr[i] == 0 {
continue
}
for j in stride(from: i*i, through: n, by: i) {
primeArr[j] = 0
}
}
// x이 소수인지 아닌지 찾기
if primeArr[x] != 0 {
print("Prime")
}
소수 판별
// for문
func isPrime(_ n: Int) -> Bool {
if n == 1 { return false }
if n == 2 || n == 3 { return true }
let sq = Int(sqrt(Double(n)))
for i in 2...sq {
if n % i == 0 { return false }
}
return true
}
// while문
func isPrime(_ n: Int) -> Bool {
if n == 1 { return false }
if n == 2 || n == 3 { return true }
let sq = Int(sqrt(Double(n)))
while i <= sq {
gaurd n % i != 0 else { return false }
i += 1
}
return true
}
진수 구하기
var ten = 100
var tenToTwo = ""
var twoToTen = 0
var twoToSixteen = ""
// 10진수 -> 2진수
tenToTwo = String(value, radix: 2)
// 2진수 -> 10진수
twoToTen = Int(tenToTwo, radix: 2)!
// 2진수 -> 16진수
twoToSixteen = String(tenToTwo, radix: 16)
소수점 다루기
var num = 5.245
// 반올림
round(num)
// 올림
ceil(num)
// 내림
floor(num)
// 버림
trunc(num)
// 소수점 자르기
String(format: "%.2f", num) // 소수점 2자리까지 자르기
'iOS > Swift' 카테고리의 다른 글
[Swift] super.init()은 언제 호출해야할까 (0) | 2022.11.29 |
---|---|
[Swift] stride 함수 / Set (0) | 2022.10.25 |
[Swift] Swift 알고리즘 - Dictionary (0) | 2022.10.12 |
[Swift] Swift 알고리즘 - 문자열 / 배열 (0) | 2022.10.11 |
[Swift] 클로저 (Closure) (0) | 2022.09.24 |