ALGORITHM
[swift] 알고리즘 풀기 전 준비
느리님
2021. 8. 10. 00:31
import Foundation
// 1, 2, 3, 4, 5 -> Int 배열로 변환하기
let intArr = readLine()!.split(separator: " ").map { Int($0)! }
print(intArr[0])
// 1, 2, 3, 4, 5 -> String 배열로 변환하기
let stringArr = readLine()!.split(separator: " ")
print(stringArr)
// closure 방식의 split
let stringArr = readLine()!.split { $0 == " " }
// 12345 -> Int 배열로 반환하기, Array(readLine())이 배열에 반환하는 값은 Character 이다.
// 따라서 String으로 변환 후 Int로 바꿔주기
// 주의!! Character은 Int로 바로 변환할 수 없다.
let intArr = Array(readLine()!).map { Int(String($0))! }
print(intArr)
/* Swift의 자료구조 3대장?
Array, Set, Dictionary
Heap, Stack, Queue를 지원하지않음...
*/
/* 고차함수 연습
reversed(), sort(), sorted(), enumerated(), reduce(into:), map(), compactMap(),
split(separator:), components(separatedBy:)
*/
// 크기가 정해진 배열
var threeDoubles = [Int](repeating: 0, count: 3) // [0, 0, 0]
var threeDoubles2 = Array(repeating: 0, count: 3) // [0, 0, 0]
var threeDoubles4 = [String](repeating: "A", count: 3) // ["A", "A", "A"]
// 배열에 값 추가
var a: [Int] = [1, 2, 3, 4]
a.append(5)
a += [6, 7, 8]
a.append(contentsOf: stride(from: 5, to: 10, by: 1)) // 5~9
a.append(contentsOf: stride(from: 5, through: 10, by: 1)) // 5~10
// 크기가 정해진 이차원 배열
var arr: [[Int]] = Array(repeating: Array(repeating: 0, count: 5), count: 3)
var arr2 = [[Int]](repeating: Array(repeating: 0, count: 5), count: 3)
var arr3 = [[String]](repeating: Array(repeating: "A", count: 5), count: 3)
// 배열 특정 범위 꺼내기
var array: [Int] = [1, 5, 2, 6, 3, 7, 4]
array[0...2]
// 배열 indices 로 접근
let s = "hello!"
for index in s.indices {
print("\(s[index])", terminator: "")
}
/* firstIndex 활용
let greeting = "Hello, world!"
let index = greeting.firstIndex(of: ",")!
let beginning = greeting[..<index]
// beginning is "Hello"
print(beginning)
// Convert the result to a String for long-term storage.
let newString = String(beginning)
print(newString)
*/