세트 생성하기
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을 반환함배열에서 세트(Set)를 생성하면 한 단계로 중복이 제거됩니다:
let unique = Set([1, 2, 2, 3, 3, 3])
// 3 elements, exact order not guaranteed챌린지
초급한 줄의 입력을 읽습니다: 쉼표로 구분된 단어 목록(중복이 있을 수 있음).
세 줄을 출력합니다:
- 고유한 단어의 개수 (
Set사용) - 알파벳 순으로 정렬되고
,로 연결된 고유한 단어들 - 입력에
swift라는 단어가 포함되어 있으면true, 그렇지 않으면false(contains사용)
입력 swift,ruby,go,swift,go,rust에 대한 출력은 다음과 같습니다:
4
go,ruby,rust,swift
true치트 시트
Set – 고유한 값들의 순서 없는 컬렉션입니다. 배열 리터럴 구문을 사용할 때는 타입 어노테이션이 필요합니다:
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3 (중복 제거됨)핵심 연산:
colors.insert("yellow") // 요소를 추가함
colors.contains("green") // true
colors.remove("blue") // "blue"를 반환하거나 없으면 nil을 반환함중복을 제거하기 위해 배열로부터 세트를 생성합니다:
let unique = Set([1, 2, 2, 3, 3, 3]) // 3개의 요소직접 해보기
let words = readLine()!.components(separatedBy: ",")
// TODO: Set을 통해 중복 제거, 개수 출력, 정렬 후 결합, "swift" 포함 여부 확인
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.