코테 공부/python

[프로그래머스] Python 겹치는 선분의 길이

sweet-po 2023. 6. 9. 00:56

https://school.programmers.co.kr/learn/courses/30/lessons/120876

나의 코드

이번에야 말로 생각이란걸 하고 풀어봤다 라고 자부하며

비록 for문이지만 나름 생각을 했다 이거야.. 했다

선분에 포함된 숫자들로 리스트에 추가해서 그 숫자가 2개 이상씩 나오면 count 하는거로 짰다

def solution(lines):
    answer = 0
    li = []
    for el in lines:
        for i in range(el[0], el[1]):
            li.append(i)
            
    for l in range(min(lines)[0], max(lines[0][1], lines[1][1], lines[2][1])):      
        if li.count(l) >= 2:
            answer += 1

    return answer

타풀이

근데 set으로.. 교집합, 합집합으로 하는것이... 있었단걸... 왜 타풀이를 보고 나서야 생각이 나는걸까

나 set 알아요... 안다니까..?

def solution(lines):
    sets = [set(range(start, end)) for start, end in lines]
    return len(sets[0] & sets[1] | sets[0] & sets[2] | sets[1] & sets[2])