Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 백엔드개발자
- 디자인강의
- UXUI기초정복
- 오픈패스
- 객체지향
- 국비지원
- 국비지원교육
- OPENPATH
- 백엔드
- 내일배움카드
- 패스트캠퍼스
- Java
- Be
- 부트캠프
- 디자인교육
- 환급챌린지
- 디자인챌린지
- KDT
- 백준
- 내일배움캠프
- 오블완
- 국비지원취업
- 백엔드 부트캠프
- 오픈챌린지
- mysql
- 티스토리챌린지
- baekjoon
- Spring
- UXUIPrimary
- UXUI챌린지
Archives
- Today
- Total
군만두의 IT 공부 일지
[백준] 1269번: 대칭 차집합 (파이썬) 본문
✅문제: 1269번
📌개념정리
(1) 대칭 차 (Symmetric Difference)
- 정의: 두 집합 A와 B의 대칭 차는 A∪B에서 A∩B를 뺀 부분
- A와 B 중 하나에만 포함된 원소들로 이루어진 집합
- A△B=(A−B)∪(B−A)
- 두 집합에서 공통되지 않는 요소들의 개수를 구할 때 사용됨.
📌문제풀이
주어진 두 리스트 A와 B에 대해 각 리스트를 집합으로 변환하고, 대칭 차 연산을 수행하여 대칭 차 집합의 크기를 계산하는 문제임.
1. 주어진 두 리스트 A와 B를 각각 집합으로 변환
2. set.symmetric_difference() 또는 ^ 연산자를 사용해 두 집합의 대칭 차 계산
3. 대칭 차 집합의 크기를 len() 함수로 계산
import sys
input = sys.stdin.read
def difference(a, b):
set_a = set(a)
set_b = set(b)
return len(set_a.symmetric_difference(set_b))
data = input().split()
n, m = int(data[0]), int(data[1])
a = map(int, data[2:2+n])
b = map(int, data[2+n:])
result = difference(a, b)
print(result)
코드 실행 결과를 예제 입력 1로 확인하면, 실행 과정은 아래와 같음.
# 예제 입력 1
3 5
1 2 4
2 3 4 5 6
- 리스트 A와 B는 각각 {1,2,4}와 {2,3,4,5}로 변환됨.
- 대칭 차 계산
- A△B=(A∪B)−(A∩B)
- A∪B={1,2,3,4,5}
- A∩B={2,4}
- A△B={1,3,5}
- 대칭 차의 크기 = 3
# 예제 출력 1
3
📌후기
이 문제는 집합 자료구조와 대칭 차 연산의 활용법을 이해하는 데 적합한 문제입니다. 특히, 두 집합 간의 공통되지 않은 요소를 빠르게 계산할 수 있다는 점에서 `set`의 강력함을 느낄 수 있었습니다. 대칭 차 연산은 간단한 문제처럼 보이지만, 실전에서 데이터 비교나 필터링에 유용하게 쓰일 수 있다는 점을 깨달았습니다.
- 집합 자료구조와 대칭 차 연산 활용법을 이해하면서 풀 수 있었음.
- 중복된 요소를 자동으로 처리하는 파이썬의 set 덕분에 코드가 간결해진 것 같음.
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 1181번: 단어 정렬 (파이썬) (1) | 2024.11.18 |
---|---|
[백준] 1263번: 시간 관리 (파이썬) (0) | 2024.11.17 |
[백준] 14888번: 연산자 끼워넣기 (파이썬) (1) | 2024.11.14 |
[백준] 25206번: 너의 학점은 (파이썬) (3) | 2024.11.13 |
[백준] 9251번: LCS (파이썬) (0) | 2024.08.14 |
Comments