This is da(大) SWIFT
옆집 스위프트: 1-1) 데이터 구조 - 배열(Array)
옆집개
2025. 3. 10. 16:56
나는 스위프트를 잘 알고있는가?
너무 기초이지만 정리한번 해볼까?
데이터구조와 알고리즘을 스위프터에 입장에서 정리한번 해보려 한다.
생각하며 적어가려니 목차는 모르겠다.
일단 배열
1. 배열(Array)
- 배열 생성
// 대괄호를 사용하여 기본 생성
let fruits = ["apple", "banana", "orange"]
// 초기자를 사용하여 생성
let numbers = Array<Int>(repeating: 0, count: 5)
- 배열 접근
// 첫번째는 0의 인덱스를 가짐
let fruits = ["apple", "banana", "orange"]
let fristFruit = fruits[0] //"apple"
let secondFruit = fruits[2] //"orange"
- 배열 수정
// 추가, 제거, 삽입, 반전
var fruits = ["apple", "banana", "orange"]
fruits.append("grapes") //["apple", "banana", "orange", "grapes"]
fruits.remove(at: 1) //["apple", "orange", "grapes"]
fruits.insert("kiwi", at: 2) //["apple", "orange", "kiwi", "grapes"]
fruits.reverse() //["grapes", "kiwi", "orange", "apple"]
let originalFruits = fruits.reversed() //["apple", "orange", "kiwi", "grapes"]
- 배열 연산
// 정렬, 필터링, 매핑, 축소
var numbers = [5, 2, 8, 1, 9]
var words = ["Swift", "is", "awesome"]
numbers.sort() //[1, 2, 5, 8, 9] - 정렬
let evenNumbers = numbers.filter($0 % 2 == 0} //[2, 8] -> 필터링
let containsFive = numbers.contains(5) //true -> 필터링
let squaredNumber = numbers.map{$0 * $0} //[1, 4, 25, 64, 81] -> 매핑
let sum = numbers.reduce(0, +) //25 -> 축소(배열의 합)
let product = numbers.reduce($0 * $1) //720 -> 축소(배열의 곱)
let sentence = words.reduce("") { $0 + ($0.isEmpty ? "" : " ") + $1 }
//"Swift is awesome" -> 축소(문자열 배열 연결)