Menu
Coddy logo textTech

합집합과 교집합

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

두 개의 컬렉션이 포함된 멤버십 질문을 할 때 세트(Set)는 그 진가를 발휘합니다.

let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5, 6]

union은 양쪽의 모든 요소를 반환합니다:

a.union(b)              // {1, 2, 3, 4, 5, 6}

intersection은 양쪽 모두에 포함된 요소만 반환합니다:

a.intersection(b)       // {3, 4}

각 메서드는 새로운 Set을 반환합니다. 원본 세트는 변경되지 않은 상태로 유지됩니다. 결과에 대한 반복 순서는 보장되지 않으므로, 출력하기 전에 정렬하십시오.

challenge icon

챌린지

쉬움

두 줄의 입력을 읽습니다. 각 줄은 쉼표로 구분된 정수 목록입니다.

이들을 집합 ab로 취급합니다. 두 줄을 출력하세요:

  1. 오름차순으로 정렬되고 ,로 연결된 교집합 (비어 있는 경우 빈 줄 출력)
  2. 오름차순으로 정렬되고 ,로 연결된 합집합

첫 번째 줄에 1,2,3,4, 두 번째 줄에 3,4,5,6이 입력으로 주어지면, 출력은 다음과 같습니다:

3,4
1,2,3,4,5,6

치트 시트

Swift에서의 집합(Set) 연산:

let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5, 6]

a.union(b)         // {1, 2, 3, 4, 5, 6} - 두 집합 중 어느 한 곳에라도 있는 요소들
a.intersection(b)  // {3, 4} - 두 집합 모두에 있는 요소들

두 메서드 모두 새로운 Set을 반환하며, 원본은 변경되지 않습니다. 순회 순서가 보장되지 않으므로 출력하기 전에 정렬하십시오.

직접 해보기

let a = Set(readLine()!.components(separatedBy: ",").map { Int($0)! })
let b = Set(readLine()!.components(separatedBy: ",").map { Int($0)! })

// TODO: 교집합 정렬 후 결합, 합집합 정렬 후 결합
quiz icon실력 점검

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

로직 및 흐름의 모든 레슨