본문 바로가기
자료구조-알고리즘/기초수학

기초수학: 집합

by vita12321 2023. 8. 11.
728x90
반응형

글에서는 자료구조/알고리즘 중 기초수학: 집합의 기본 개념, 특성, 연산 등에 대해 알아보고, 이를 자료구조와 알고리즘에 어떻게 활용할 있는지에 대한 예제 코드를 소개합니다.


1. 집합의 기본 개념

 

집합은 임의의 개체들의 모음입니다. 중복되는 원소가 없고, 원소간의 순서는 고려되지 않습니다. 집합은 일반적으로 중괄호 {} 표현됩니다. 예를 들어 A={1, 2, 3, 4}라는 집합은 1, 2, 3, 4 원소로 구성된 집합입니다.


2. 집합의 특성

 

집합은 다음과 같은 특성을 가지고 있습니다:

  • 중복 없음: 하나의 집합 내에서 동일한 원소가 중복되어 나타나지 않습니다.

  • 순서 없음: 원소들 사이에 순서가 존재하지 않습니다. 즉, 원소들의 나열 순서가 다른 두 집합도 같은 집합으로 간주됩니다.

3. 집합의 종류

 

  • 부분집합:
    집합 A의 모든 원소가 집합 B에 속하는 경우, A는 B의 부분집합입니다. 이를 기호 ⊆로 나타냅니다.

  • 공집합:
    원소가 없는 집합입니다. 기호 Ø로 표현되며, 모든 집합의 부분집합으로 간주됩니다.

  • 전체집합:
    주어진 문제의 상황에 따라 모든 원소를 포함하는 집합입니다. 보통 U 또는 E로 표시합니다.

4. 집합의 기본 연산

 

자료구조와 알고리즘에서 집합에 대한 빈번한 연산들은 아래와 같습니다.

 

  • 합집합:
    두 집합 A와 B의 모든 원소를 포함하는 새로운 집합을 만듭니다. 합집합은 기호 ∪로 표현되며, A ∪ B로 나타냅니다.

  • 교집합:
    두 집합 A와 B의 공통 원소로만 이루어진 새로운 집합을 만듭니다. 교집합은 기호 ∩로 표현되며, A ∩ B로 나타냅니다.

  • 차집합:
    집합 A에서 집합 B의 원소를 제거한 새로운 집합을 만듭니다. 차집합은 기호 -로 표현되며, A - B로 나타냅니다.

5. 집합을 사용하는 예제 코드

 

자바에서 집합을 구현하기 위해 Set 인터페이스와 이를 구현하는 HashSet 등의 클래스를 사용할 있습니다.

 

예제: 집합 연산 수행하기

import java.util.HashSet;

import java.util.Set;

 

public class SetExample {

 

    public static void main(String[] args) {

 

        Set<Integer> setA = new HashSet<>();

        setA.add(1);

        setA.add(2);

        setA.add(3);

 

        Set<Integer> setB = new HashSet<>();

        setB.add(2);

        setB.add(3);

        setB.add(4);

 

        // 합집합 구하기

        Set<Integer> union = new HashSet<>(setA);

        union.addAll(setB);

        System.out.println("합집합: " + union); // 출력: [1, 2, 3, 4]

 

        // 교집합 구하기

        Set<Integer> intersection = new HashSet<>(setA);

        intersection.retainAll(setB);

        System.out.println("교집합: " + intersection); // 출력: [2, 3]

 

        // 차집합 구하기

        Set<Integer> difference = new HashSet<>(setA);

        difference.removeAll(setB);

        System.out.println("차집합: " + difference); // 출력: [1]

    }

}

6. 집합의 활용 사례

 

집합은 여러 분야에서 다양하게 활용됩니다. 아래는 주요 활용 사례입니다.

 

  • 데이터 분석:
    데이터의 중복 여부를 확인할 때 집합을 사용하여 중복을 제거하고 고유한 원소들만을 확인할 수 있습니다.
  • 텍스트 마이닝:
    텍스트에서 특정 단어의 출현 빈도를 파악할 때 집합을 이용하여 중복 단어를 제거하고 고유한 단어 집합을 생성합니다.

  • 소셜 네트워크 분석:
    공통 친구 목록이나 공통 그룹 찾기에 집합을 이용하여 교집합을 계산할 수 있습니다.

  • 그래프 이론:
    다양한 그래프 관련 문제를 해결하기 위해서 집합을 사용합니다. 전체 그래프에서 독립적인 부분 그래프를 찾거나, 두 노드의 연결 상태를 파악할 때 집합을 활용할 수 있습니다.

 

글을 통해 자료구조와 알고리즘에서 집합의 기본 개념, 특성, 연산 활용 방법을 간략하게 살펴보았습니다. 집합을 이해하고 활용하는 능력은 프로그래밍 뿐만 아니라 다양한 분야에서 중요한 역할을 수행할 있습니다.

728x90
반응형

'자료구조-알고리즘 > 기초수학' 카테고리의 다른 글

기초수학: 지수와 로그  (0) 2023.08.16
기초수학: 점화식과 재귀함수  (0) 2023.08.15
기초수학: 조합  (0) 2023.08.14
기초수학: 순열  (0) 2023.08.13
기초수학: 경우의 수  (0) 2023.08.12