자주 쓰이는 문법 정리 (계속 업데이트를 할 예정입니다 ^__^)
정수, 정수 배열 입력 받기
// 정수 입력
let number = Int(readLine()!)!
// 정수 배열 입력 (입력 예시 : 1 4 2 6 7)
let arr = readLine()!.split(separator: " ").map{ Int(String($0))! }
Dictionary
var myDictionary = [String: Int]()
myDictionary["three"] = 3
print(myDictionary["three"]) // 3
myDictionary["three"] = 33
print(myDictionary["three"]) // 33
// myDictionary의 모든 key 출력
for key in myDictionary.keys {
print(key)
}
// myDictionary의 모든 value 출력
for value in myDictionary.values {
print(value)
}
// myDictionary count 출력
print(myDictionary.count)
진수 변환
// 10 -> 2
let decimal = 30
let binary = String(decimal, radix: 2)
// 2 -> 10
let binary = "11111"
let decimal = Int(binary, radix: 2)!
// 10 -> 8
let octal = "764"
let decimal = Int(octal, radix: 8)!
// 8 -> 10
let decimal = 924
let octal = String(decimal, radix: 8)
배열
// 1차원 배열 채우기
let arr = Array.init(repeating: (채울 내용), count: 반복 카운트 - 인덱스)
// 2차원 배열 채우기
let arr = Array.init(repeating: Array(repeating: false, count: 4), count: 5)
// 배열 뒤집기
arr.reverse()
// 1차원 배열의 합 (Int일 경우)
arr.reduce(0, +)
// 1차원 배열의 합 (String일 경우)
arr.reduce("", +)
// 특정 원소 포함 여부 확인 (true / false)
arr.contains(5)
// 인덱스로 원소 제거
arr.remove(at: 3) // index가 3인 원소 삭제
// 첫 번째 원소 제거 (배열이 비어있으면 에러)
arr.removeFirst()
정렬
// 배열 정렬
let arr = [3, 2, 1, 5, 6]
arr.sorted(by: <) // 오름차순
arr.sorted(by: >) // 내림차순
// 객체 정렬
class Person {
let name: String
let age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
let a = Person(name: "a", age: 32)
let c = Person(name: "c", age: 27)
let d = Person(name: "d", age: 51)
let b = Person(name: "b", age: 25)
let arr = [a, c, d, b]
arr.sorted(by: {$0.name < $1.name}) // 객체의 name 오름차순 정렬
arr.sorted(by: {$0.age < $1.age}) // 객체의 age 오름차순 정렬
// 문자열 정렬
let str = "ACTQD"
String(str.sorted { $0 > $1 }) // 문자열 내림차순 정렬
대소문자 변환
var str = "aBcDe"
str = str.capitalized() // ABcDe -> 첫 글자만 대문자로 변환
str = str.lowercased() // abcde
str = str.uppercased() // ABCDE
for vs map
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
var forArr = [Int]()
// for문 사용시
for i in arr {
forArr.append(i * 3)
}
// map 사용시 -> 가독성 향상, 재사용 용이
let mapArr = arr.map { $0 * 3 }
Filter
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
let filterArr = arr.filter{ $0 % 2 == 0 } // 0, 2, 4, 6, 8
for vs reduce
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
// for문 사용시
var forSum: Int = 0
for i in arr {
forSum += i
}
// reduce 사용시
let reduceSum = arr.reduce(0) {$0 + $1}
수학
// 제곱근 -> Double형으로 반환
sqrt(64) // 8.0
// 거듭 제곱 -> Int, Double 모두 가능
pow(3, 2) // 3^2 = 9
// 절대값
abs(-25) // 25