Swift에서 자료 구조 개념과 예제

서론

Swift는 객체지향, 함수형 프로그래밍, 제어 구문, 문자열과 정수 등의 기본 타입을 가지고 있다. 또한 자료 구조를 통해 데이터를 다루는데 도움이 되는 배열, 딕셔너리, 세트 등 다양한 자료 구조를 제공한다. 이번 글에서는 Swift에서 자료 구조를 다루는 방법과 예제를 소개하려고 한다.

 

Swift에서 자료 구조 개념과 예제
-스위프리
(위 사진은 내용과 무관함 Pexels 제공 사진)

 

본론

1. Swift에서 자료구조 정의

Swift에서 자료구조는 데이터를 저장하기 위해 구성된 구조를 말합니다. 이는 자료를 저장하고 조작하기 위한 일련의 규칙이며, 이를 사용하면 데이터를 효율적으로 저장하고 상호 관련된 모든 정보를 정리하고 관리할 수 있습니다. Swift에서 사용할 수 있는 자료구조로는 배열, 딕셔너리, 세트, 그리고 스택 등이 있습니다. 이 자료 구조를 사용하면 여러 가지 방법으로 데이터를 저장하고 관리할 수 있으며, 코드 작성 속도 및 가독성도 높여줍니다.

 

2. 배열

Swift에서 배열은 동일한 타입의 여러 요소를 순서대로 저장하는 컬렉션 타입입니다. 배열은 인덱스를 사용해 요소에 접근할 수 있습니다. 배열의 인덱스는 0부터 시작하며 배열의 길이보다 1 큰 숫자를 사용하면 에러가 발생합니다. 배열의 길이는 .count 프로퍼티를 사용해 배열의 길이를 알 수 있습니다. 배열은 다음과 같은 연산을 수행할 수 있습니다. append, insert, remove, removeAll, replace, sort 등입니다.

예를 들어, 다음과 같이 배열을 생성할 수 있습니다.

let numbers = [1,2,3,4,5]

생성된 배열의 길이는 다음과 같습니다.

print(numbers.count) // 5

 

3. 딕셔너리

Swift에서 딕셔너리는 연관된 쌍의 데이터를 저장하기 위해 사용됩니다. 딕셔너리는 키와 값으로 구성되며, 키는 중복될 수 없고 똑같은 값을 가질 수 있습니다. 딕셔너리는 `Dictionary` 타입으로 선언하며, 딕셔너리를 생성하기 위해서는 키와 값의 쌍을 나타내는 콜론(:)과 쉼표(,)로 구분하여 작성합니다. 예를 들어 다음과 같이 선언할 수 있습니다.

“`

var dictName: [String: Int] = [“Apple”: 3, “Banana”: 5, “Cherry”: 7]

“`

딕셔너리 요소는 `updateValue(_:forKey:)` 메소드를 이용해 수정할 수 있고, `removeValue(forKey:)` 메소드를 이용하여 요소를 삭제할 수 있습니다. 딕셔너리 요소를 참조할 때는 인덱스 연산자를 사용합니다. 예를 들어, 다음과 같이 생성한 딕셔너리에서 “Apple” 값을 참조하고 싶다면,

“`

dictName[“Apple”]

“`

이렇게 하면 됩니다. 딕셔너리는 배열과 달리 순서가 없기 때문에, 순회하기 위해서는 `for-in` 문을 사용해야 합니다. 딕셔너리의 각 요소는 튜플의 형태로 반환되기 때문에, `for-in` 문을 사용하면 키와 값을 모두 사용할 수 있습니다.

“`

for (key, value) in dictName {

print(“\(key): \(value)”)

}

“`

딕셔너리는 데이터를 저장하기 위해 자주 사용되는 자료구조로, 다양한 방법으로 사용할 수 있습니다.

 

4. 집합

Swift에서 자료 구조 중 하나인 집합(Set)은, 중복되지 않는 유일한 값들의 집합을 표현하는 데 사용합니다. 기존의 배열과 달리 중복되는 값이 포함되지 않으며, 배열처럼 순서가 없기 때문에 인덱스를 사용할 수 없습니다.

집합을 사용하는 가장 흔한 방법은 두 배열의 공통 요소를 찾아내는 것입니다. 예를 들어 두 배열 [1,2,3,4]과 [3,4,5,6]이 있을 때 공통 요소는 [3,4]가 됩니다. 두 배열을 집합으로 변환하고 두 집합의 교집합을 구하면 공통 요소를 찾을 수 있습니다.

let set1: Set = [1,2,3,4]

let set2: Set = [3,4,5,6]

//공통 요소

let intersection = set1.intersection(set2)

print(intersection) // [3, 4]

 

5. 예제 코드 분석

Swift에서 자료구조는 다양하게 사용할 수 있으며 배열, 집합, 딕셔너리 등이 있다. 여기서는 배열에 대한 예제 코드를 살펴보도록 하겠습니다.

먼저 배열 선언을 합니다.

let array = [1,2,3,4,5]

이후 배열의 크기를 알고 싶을 때는 .count 메소드를 사용합니다.

let count = array.count // count는 5가 됩니다.

배열에 새로운 값을 추가하고 싶다면 .append 메소드를 사용합니다.

array.append(6) // 배열의 값은 [1,2,3,4,5,6] 이 됩니다.

배열에서 값을 삭제하고 싶다면 .remove(at:) 메소드를 사용합니다.

array.remove(at: 0) // 배열의 값은 [2,3,4,5,6] 이 됩니다.

배열에 특정 값을 찾고 싶다면 .index(of:) 메소드를 사용합니다.

let index = array.index(of: 4) // index는 2가 됩니다.

 

Swift에서 자료 구조 개념과 예제
2-스위프리
(위 사진은 내용과 무관함 Pexels 제공 사진)

 

결론

Swift는 간결하고 안정적인 코드를 작성하기 위해 강력한 인프라를 제공하는 새로운 프로그래밍 언어입니다. 자료 구조(Data Structure)는 다양한 형태의 자료를 저장하고 관리하는 것을 말합니다. Swift에서는 배열(Array), 사전(Dictionary), 집합(Set) 등 다양한 자료 구조를 제공합니다.

배열은 순서가 있는 연속된 데이터를 저장합니다. 다음은 배열을 사용하는 예제입니다.

let numbers = [1, 2, 3, 4, 5]

사전은 키와 값의 쌍으로 이루어진 자료구조입니다. 다음은 사전을 사용하는 예제입니다.

let numberToName = [“one”: “하나”, “two”: “둘”, “three”: “셋”]

집합은 데이터의 중복을 허용하지 않는 자료 구조입니다. 다음은 집합을 사용하는 예제입니다.

let uniqueNumbers = Set([1, 2, 3, 4, 5, 5, 5]) // [1, 2, 3, 4, 5]

함께 보면 좋은 영상

자료구조를 3분만에 이해해보자 | 자료구조 1강

자료구조를 3분만에 이해해보자 | 자료구조 1강