겹치는 선분의 길이 (programmers Lv0)

송성원·2024년 1월 4일
1

programmers

목록 보기
7/9
post-thumbnail

겹치는 선분의 길이

우선 이문제는 set인 집합을 사용하여 교를 구하면 된다는 것은 머릿속으로 구현이 되었는데
코드를 짜보려고 하지만 58%라는 정답률을 보고 풀어서 그런지 풀어지지가 않았다..


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

헷갈릴거 같아서 이해를 못하시는 분을 위해 설명을 해놓겠습니다. 1. sets안에 set으로 집합이 생성된다는 것이다 => sets = [ [1케이스], [2케이스], [3케이스] ] 2. 두개가 겹칠 경우이기 때문에 & 를 사용하고 다 더해줘야되기에 | 사용 3. 1케이스와 2,3케이스의 공통된 부분을 합하는데 그것의 길이를 len을 통해 출력하는 것이다.

for문에서 보이는 enumerate란?

enumerate는 순회 가능한(iterable) 객체(리스트, 튜플, 문자열 등)를 입력으로 받아 인덱스(index)와 값을 한 쌍으로 반환해주는 파이썬 내장 함수입니다.


my_list = ['apple', 'banana', 'orange']

for index, value in enumerate(my_list):
    print(f'Index: {index}, Value: {value}')

그럼 {index} => 0,1,2 / {value} => apple, banana, orange
가 print()구문에 의해서 출력되게 됩니다.

profile
개발에 도전하는 문과생입니다.

0개의 댓글