Algorithm 문제 & 공부/구현

파이썬 집합 - set

somm12 2022. 5. 17. 08:31

관련 백준 알고리즘 문제

 

11723번: 집합

첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다.

www.acmicpc.net

** 파이썬 집합 자료형's 특징

- 중복을 허용하지 않는다

- 순서가 없다 -> 리스트 처럼 인덱싱을 지원하지 않는다

집합 만들기

# s1 = {1, 2, 3}
s1 = set([1,2,3])

# 문자열 s1
s2 = set("Hello")

#s2 = {'e','H','l','o'}

** 문자열을 만들 때는 순서대로 만들어지지 않는다. 그러니 문자열 문제에서 중복 없애려고 set 을 사용할 때는 조심해야한다.

 

집합 자료형 관련 함수들

 

1. 값 한개 추가하기 (add)

>>> s1 = set([1, 2, 3])
>>> s1.add(4)
>>> s1
{1, 2, 3, 4}

 

2. 값 여러 개 추가하기(update)

>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6])
>>> s1
{1, 2, 3, 4, 5, 6}

 

3. 특정 값 제거하기(remove)

>>> s1 = set([1, 2, 3])
>>> s1.remove(2)
>>> s1
{1, 3}

 

4. remove와 비슷한 함수 (discard)

discard는 제거하려는 원소가 없을 때는 정상 종료가 되지만 remove는 제거하려는 원소가 없으면 에러가 발생한다.

 

참고 : 

 

02-6 집합 자료형

[TOC] ## 집합 자료형은 어떻게 만들까? 집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다. ...

wikidocs.net