Menu
Coddy logo textTech

세트 생성하기

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

Set은 유일한 값들의 순서 없는 컬렉션입니다. 모든 요소의 타입이 동일해야 하며, 중복이 허용되지 않고, 예측 가능한 순회 순서가 없습니다.

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

["a", "b"] 자체는 Array로 추론되기 때문에 리터럴 형태에서는 타입 어노테이션 Set<String>이 필수입니다.

세 가지 핵심 연산: 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. 알파벳순으로 sorted되고 ,joinedunique words
  3. 입력에 swift 단어가 포함되어 있으면 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 플레이그라운드