[백준/Python] 1746 듣보잡

재활용병·2024년 1월 16일
0

코딩 테스트

목록 보기
77/157

[백준/Python] 1746 듣보잡


풀이 코드 및 설명

import sys

n, m = map(int, sys.stdin.readline().split())

n_set = set(sys.stdin.readline().strip() for _ in range(n))
m_set = set(sys.stdin.readline().strip() for _ in range(m))

common_elements = n_set & m_set
#common_elements = n_set.intersection(m_set)
print(len(common_elements))
for ele in sorted(common_elements):
    print(ele)
  • 듣도 보다 못한 사람 명단을 집합A 라고 하고 보도 못한 사람의 명단을 집합 B라고 했을 때, 듣도 보도 못한 사람을 구하는 것이다.
  • A와 B의 동시에 있는 사람을 구하면 되는 문제이다. 이는 집합의 교집합이라고 할 수 있다.
  • 파이썬 코드에서 교집합 구하는 코드는 다음과 같다.
    방법 1: & 연산자 사용
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

common_elements = set1 & set2
print(common_elements)  # {4, 5}

방법 2: intersection() 메소드 사용

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

common_elements = set1.intersection(set2)
print(common_elements)  # {4, 5}

위 2가지 방법을 사용하면 문제를 해결 할 수 있다.

집합 연산

1.교집합(Intersection)

  • '&' 연산자 또는 intersection() 메소드를 사용하여 두 집합의 교집합을 구할 수 있다.
a = {1, 2, 3}
b = {2, 3, 4}
c = a & b  
c = a.intersection(b)  

2. 합집합 (Union)

  • '|' 연산자 또는 union() 메소드를 사용하여 두 집합의 합집합을 구할 수 있다.
a = {1, 2, 3}
b = {2, 3, 4}
c = a | b  # {1, 2, 3, 4}
c = a.union(b)  # {1, 2, 3, 4}

3. 차집합 (Difference)

  • '-' 연산자 또는 difference() 메소드를 사용하여 두 집합의 차집합을 구할 수 있다.
a = {1, 2, 3}
b = {2, 3, 4}
c = a - b 
c = a.difference(b)  

4. 대칭 차집합 (Symmetric Difference)

  • '^' 연산자 또는 symmetric_difference() 메소드를 사용하여 두 집합의 대칭 차집합을 구할 수 있다.
  • 대칭 차집합은 두 집합 중 한 집합에는 포함되지만, 두 집합 모두에는 포함되지 않는 요소들의 집합이다.
a = {1, 2, 3}
b = {2, 3, 4}
c = a ^ b  
c = a.symmetric_difference(b) 

5. 부분 집합 확인 (Subset)

  • '<=' 연산자 또는 issubset() 메소드를 사용하여 한 집합이 다른 집합의 부분 집합인지 확인 할 수 있다.
a = {1, 2}
b = {1, 2, 3}
is_subset = a <= b 
is_subset = a.issubset(b) 

6. 상위 집합 확인 (Superset)

  • '>=' 연산자 또는 issuperset() 메소드를 사용하여 한 집합이 다른 집합의 상위 집합인지 확인할 수 있다.
a = {1, 2, 3}
b = {1, 2}
is_superset = a >= b  
is_superset = a.issuperset(b)  

7. 집합 수정

  • 집합은 뮤터블(mutable)하므로, add(), remove(), discard(), pop() 등의 메소드를 사용하여 집합의 내용을 변경할 수 있다.
profile
코딩 말고 개발

0개의 댓글

관련 채용 정보