728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/120876
풀이
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])
혼자 풀지 못해서 다른 사람의 풀이를 보고 한 문제이다.
주어진 lines 배열의 각각 최소-최대 값을 파악해 이를 집합으로 담았다.
테이스 케이스에 따른 sets의 값은 다음과 같다.
각 집합은 선분의 길이를 담고 있는데,
각각의 집합체(선분)들을 & 연산자로 교집합을 구하고, 최종적으로 겹치는 선분들을 | 연산자로 합집합을 구한다!
그 후, 구한 집합의 길이를 반환한다.
즉,
과 같이 나오게 된다!
느낀점
0단계 문제가 아닌듯하다;;
뭔가 어렵지만 그래도 풀이 자체는 쉬운듯하다.
728x90
'코딩테스트 > PYTHON' 카테고리의 다른 글
[프로그래머스][PYTHON] Lv. 1 추억 점수 (0) | 2024.04.12 |
---|---|
[프로그래머스][PYTHON] Lv. 0 문자열 밀기 (0) | 2024.04.11 |
[프로그래머스][PYTHON] Lv. 0 옹알이 (1) (0) | 2024.04.05 |
[프로그래머스][PYTHON] Lv. 0 평행 (0) | 2024.04.03 |
[프로그래머스][PYTHON] Lv. 0 연속된 수의 합 (0) | 2024.04.02 |