본문 바로가기
프로그래밍/알고리즘

프로그래머스 - 겹치는 선분의 길이 파이썬

by monicada 2022. 11. 23.
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}

댓글