코테 풀 때 자주 쓰는 함수들 정리

문제 풀 때마다 업뎃할 예정!

문자열

String을 배열로 만들기

각 글자(character) 별로 쪼개고 싶을 때

let name: String = "ekwon"
let array: [String] = name.map{ String($0) }

특정 구분자를 기준으로 쪼개고 싶을 때

let fullName: String = "Eunbin Seri Kwon"
let array: [String] = fullName.split(separator: " ")

문자열 안에서 특정 문자 삭제하고 싶을 때

let str: String = "@Eunbin!Seri^^Kwon@@"
let removedStr: String = str.components(separatedBy: ["@", "!", "^"])
// removedStr => ["", "Eunbin", "", "Seri", "", "", "Kwon", ""]
let filteredStr: String = removedStr.filter { $0 != "" }
// filteredStr => ["Eunbin", "Seri", "Kwon"]

문자열 앞뒤 문자 삭제하고 싶을 때

let str: String = "#Eunbin$"
let removedStr: String = str.trimmingCharacters(in: ["#", "$"])
// removedStr => "Eunbin"

딕셔너리

Default 값

딕셔너리에 값을 넣지 않으면 nil이 되므로, 조건문에 따라 키가 없을 때 default 값을 넣고, 키가 있으면 값을 추가하는 방식은 너무 귀찮다.

딕셔너리의 default value를 바로 집어넣을 수 있는 방법이 있다. key값이 들어가는 곳에 , default: DEFAULT_VALUE 를 넣어 주면 된다.

var dictionary: [Int: Int] = [:]

for i in 0...10 {
	dictionary[i, default: 0] += i
}

수학

절댓값

let absolute = abs(1 - 100)
// 99

최솟값/최댓값

let minimum = min(100, 1)
let maximum = max(100, 1)
// 각각 1, 100

제곱근/제곱

제곱근 구하는 함수는 sqrt로, Double혹은 Float형 인자를 받아서 해당 타입에 맞는 제곱근을 반환한다.

let n: Double = 49
let squareRoot: Double = sqrt(n)
let intSquareRoot: Int = Int(squareRoot)

제곱 구하는 함수는 pow로, 첫 번째 인자로 제곱할 값을, 두 번째 인자로 몇 제곱인지를 넣어 주면 된다.

let n = pow(10, 2)

진수 변환

진수 변환은 String, Int 타입의 init을 통해 하면 된다.

10진수 -> 2진수

let decimal = 5
let binaryString = String(decimal, radix: 2) // "101"

2진수 -> 10진수

let binaryString = "101"
let decimal = Int(binaryString, radix: 2) // 5

10진수 <-> 8진수, 10진수 <-> 16진수 모두 위 우 개에 radix 값만 바꿔주면 된다.

댓글남기기