728x90
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해결 코드
def solution(lines):
#선분의 최소길이와 최대길이를 구함
sets = [set(range(min(l), max(l))) for l in lines]
#총 3개의 선분 중, 각 첫번째 두번째가 겹치는 경우, 1과 3이, 2와 3이 겹치는 경우의 교집합을 구하고 합집합으로 처리
return len(sets[0] & sets[1] | sets[0] & sets[2] | sets[1] & sets[2])
파이썬의 교집합
set1 = set([1,2,3,4,5]) set2 = set([3,4,5,6,8])
print(set1 & set2) = {3, 4, 5}
print(set1.intersection(set2)) = {3, 4, 5}
파이썬의 합집합
set1 = set([1,2,3,4]) set2 = set([3,4,5,6])
print(set1 | set2) = {1, 2, 3, 4, 5, 6}
print(set1.union(set2)) = {1, 2, 3, 4, 5, 6}
파이썬의 차집합
set1 = set([1,2,3,4,5]) set2 = set([4,5,6,8])
print(set1 - set2) = {1, 2, 3}
print(set1.difference(set2)) = {1, 2, 3}
'프로그래밍 > 알고리즘' 카테고리의 다른 글
프로그래머스 - A로 B 만들기 파이썬 (0) | 2022.11.25 |
---|---|
프로그래머스 - 로그인 성공? 파이썬 (0) | 2022.11.24 |
프로그래머스 - 삼각형의 완성조건(2) 파이썬 (0) | 2022.11.22 |
프로그래머스 - 직사각형 넓이 구하기 파이썬 (0) | 2022.11.21 |
프로그래머스 - OX퀴즈 파이썬 (0) | 2022.11.18 |
댓글