Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

똥그래미 코딩공장

백준 1764번(듣보잡) 파이썬 본문

Algorithm

백준 1764번(듣보잡) 파이썬

동그라미_ssu 2022. 12. 27. 21:00

https://www.acmicpc.net/problem/1764

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

이 문제는 나에게 새로운 지식을 알려준 문제이다. 이 문제는 공통된 문자열을 찾는 문제인데 집합으로 문제를 풀어야한다.

나는 set()함수가 중복제거만 해주는 함수인줄 알았지만 집합으로 엮을 수도 있다는 것을 이 문제를 통해 알았다.

이 문제는 집합에서 '교집합'의 특징을 이용해야 한다. 

아래의 코드를 보며 설명을 이어가겠다.

n,m = map(int,input().split())
set1=set()
set2=set()

for _ in range(n):
    set1.add(input())
for _ in range(m):
    set2.add(input())
    
ans = sorted(list(set1&set2))

print(len(ans))
for i in range (len(ans)):
    print(ans[i])

각각 se1, set2를 집합으로 선언해주고 반복문을 써서 입력받은 다음 &를 써줘서 교집합을 찾아준다  | 은 합집합이고 - 는 차집합이다. set() 함수의 자세한 내용은 아래의 링크를 참고하면 된다.

https://wikidocs.net/16044

 

18. set(집합)

## 1. set(집합) - set은 수학에서 이야기하는 집합과 비슷합니다. - 순서가 없고, 집합안에서는 unique한 값을 가집니다. - 그리고 mutable 객체입니다.…

wikidocs.net

set() 함수의 사용법만 안다면 이 문제는 누워서 떡 먹기이다. (사실 누워서 떡먹는건 매우 위험한 행동이다 ㅋㅋ;;;)