Menu
Coddy logo textTech

세트 생성하기

Coddy Swift 여정의 로직 및 흐름 섹션에 포함된 레슨. 56개 중 18번째.

Set은 고유한 값들의 순서가 정해지지 않은 컬렉션입니다. 모든 멤버의 요소 유형이 같고, 중복이 허용되지 않으며, 반복 순서를 예측할 수 없습니다.

var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count)              // 3 (중복된 "red"는 제거됨)

리터럴 형식에서는 Set<String> 타입 주석이 필수입니다. ["a", "b"]만 사용하면 Array로 추론되기 때문입니다.

세 가지 핵심 연산: contains, insert, remove. 뒤의 두 연산은 변경 사항이 의미 있는지에 대한 정보를 반환합니다.

colors.insert("yellow")         // 추가함
colors.insert("red")            // 이미 있음, 효과 없음
colors.contains("green")        // true
colors.remove("blue")           // "blue"를 반환하거나 없으면 nil

배열에서 집합을 만들면 한 단계로 중복을 제거합니다:

let unique = Set([1, 2, 2, 3, 3, 3])
// 3개의 요소, 정확한 순서는 보장되지 않음
challenge icon

챌린지

초급

입력의 한 줄을 읽습니다: 쉼표로 구분된 words 목록입니다(중복이 있을 수 있음).

세 줄을 출력합니다:

  1. unique words의 개수(Set 사용)
  2. 알파벳순으로 정렬한 unique words를 ,로 연결한 결과
  3. 입력에 swift라는 word가 포함되어 있으면 true, 그렇지 않으면 false(contains 사용)

입력이 swift,ruby,go,swift,go,rust인 경우 출력은 다음과 같습니다:

4
go,ruby,rust,swift
true

직접 해보기

let words = readLine()!.components(separatedBy: ",")

// TODO: Set을 통해 중복 제거, 개수 출력, 정렬 후 결합, 지침의 정확한 텍스트 포함
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 및 흐름의 모든 레슨

직접 연습해 보세요: Swift 플레이그라운드