Old_SWIFT(221012)/코딩테스트

코딩테스트용 참고사전

KataRN 2022. 3. 14. 09:47
반응형

안녕하세요. KataRN입니다.

자주 쓰지 않아서 잊어버리게 되는 함수들을 적어둘까합니다.

참고용입니다.

 

소수점 다루기

1. 반올림 : round()

2. 올림 : ceil()

3. 내림 : floor()

floor(-3.453) // -4.0
floor(-3.658) // -4.0

4. 버림 : trunc()

trunc(-3.453) // -3.0
trunc(-3.658) // -3.0

5. 특정 자리수

- 4번째 자리에서 반올림

let digit: Double = pow(10, 3) // 10의 3제곱
round(5.123123 * digit) / digit  // 5.123

- 4번째 자리에서 올림

let digit: Double = pow(10, 3) // 10의 3제곱
ceil(5.123123 * digit) / digit  // 5.124

- 4번째 자리에서 내림

let digit: Double = pow(10, 3) // 10의 3제곱
floor(5.123123 * digit) / digit  // 5.123

6. n번째 소수점 자르기

let decimal = 5.1231283712893781293
String(format: "%.3f", decimal) // "5.123"
String(format: "%.6f", decimal) // "5.123128"

 

 

절대값

1. ().magnitude -> UInt

2. abs(-123) -> Int

 

제곱값(N의 3승)

1. pow(N, 3)

let num = pow(2.0, 0)

let result = NSDecimalNumber(decimal: num)

let answer = Int(truncating: result)

 

이진수

 

10진 -> 2진

let num = String(10, radix: 2)

print(num) //1010

2진 -> 10진

let num = Int("1010", radix: 2)

print(num) //10

 

범위

(1...26) -> 1~26

(UInt32("A")...UInt32("Z")) -> A ~ Z

- 사용법 : (UInt32("A")...UInt32("Z")): String(UnicodeScalar($0)!)

 

let str: String = "A"

let number: Int = Int(UnicodeScalar(str)!.value)

print(number) // 65

 

이진탐색("둘로 나누어"와, "정렬되어 있는 자료만 가능")

// 재귀 함수로 구현하기
func binarySearch(_ array: [Int], num: Int) -> Bool {
    if array.count == 1 {
        return array[0] == num ? true : false
    }
    let mid = array.count / 2
    let range = array[mid] > num ? (0..<mid) : ((mid + 1)..<array.count)
    
    return binarySearch(Array(array[range]), num: num)
}
반응형

'Old_SWIFT(221012) > 코딩테스트' 카테고리의 다른 글

약수의 개수 구하기  (0) 2022.06.07
글자 < - > 숫자 변환 UnicodeScalar() 다루기  (0) 2022.06.03
순열과 조합  (0) 2021.11.15
소수 구하기  (0) 2021.10.18
최대공약수, 최소공배수 구하기  (0) 2021.10.18