알고리즘

[백준] 1822 - 차집합

inthyes 2023. 12. 11. 00:00

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

 

1822번: 차집합

첫째 줄에는 집합 A의 원소의 개수 n(A)와 집합 B의 원소의 개수 n(B)가 빈 칸을 사이에 두고 주어진다. (1 ≤ n(A), n(B) ≤ 500,000)이 주어진다. 둘째 줄에는 집합 A의 원소가, 셋째 줄에는 집합 B의 원소

www.acmicpc.net

 

문제

몇 개의 자연수로 이루어진 두 집합 A와 B가 있다. 집합 A에는 속하면서 집합 B에는 속하지 않는 모든 원소를 구하는 프로그램을 작성하시오.


소스코드

from sys import stdin
a, b = map(int,stdin.readline().split())
A = set(map(int,stdin.readline().split()))
B = set(map(int,stdin.readline().split()))

res = A - B

if res:
    print(len(res))
    print(*sorted(list(res)))
else:
    print(0)

 

소스코드 설명

1. set으로 A, B를 입력받아 연산을 가능하게 한다.

2. *sorted(list(res)) : 리스트로 변경하여 정렬이 가능하게 한다. 이 때 "*"을 제외하면 리스트 자체가 출력된다.

                                    *sorted(list(res))를 for문으로 돌려 출력해도 위 사용법이 시간초과는 되지 않지만 간결하고 시간 단축에 효과가                                      있다.

 

'알고리즘' 카테고리의 다른 글

[백준] 1302 - 베스트셀러(python)  (0) 2024.01.02
[백준] 1764 - 듣보잡(python)  (0) 2024.01.02
[백준] 5635 - 생일  (0) 2023.12.04
[백준] 25206 - 너의 평점은  (0) 2023.12.03
[SWEA] 10804 - 문자열의 거울상  (1) 2023.11.14