From df8db9abdbc7e3573497467e64bb0604c3883052 Mon Sep 17 00:00:00 2001 From: jihyup-byun Date: Mon, 12 Oct 2026 10:00:51 +0000 Subject: [PATCH] 4056 --- ...umber of Intersecting Interval Pairs I.py" | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 "leetcode3/\353\263\200\354\247\200\355\230\221/v3/4056. Number of Intersecting Interval Pairs I.py" diff --git "a/leetcode3/\353\263\200\354\247\200\355\230\221/v3/4056. Number of Intersecting Interval Pairs I.py" "b/leetcode3/\353\263\200\354\247\200\355\230\221/v3/4056. Number of Intersecting Interval Pairs I.py" new file mode 100644 index 00000000..4c6048d3 --- /dev/null +++ "b/leetcode3/\353\263\200\354\247\200\355\230\221/v3/4056. Number of Intersecting Interval Pairs I.py" @@ -0,0 +1,30 @@ +''' +1. 아이디어 : +모든 (i, j) 쌍을 완전탐색하면서, 두 구간이 포함하는 정수 set을 각각 만들어 +교집합이 비어있지 않으면 교차로 카운트한다. +닫힌 구간이라 끝점(경계)만 공유해도 교차로 세어진다. +2. 시간복잡도 : +o(n^2 * m) # m = 구간 길이(end - start) +3. 자료구조/알고리즘 : +set(집합), 완전탐색 +''' + +class Solution: + def countIntersectingIntervals(self, intervals: list[list[int]]) -> int: + n = len(intervals) + ans = 0 + + for i in range(n-1): + for j in range(i+1,n): + st_a, st_b = set(), set() + a1,a2 = intervals[i] + b1,b2 = intervals[j] + for a in range(a1,a2+1): + st_a.add(a) + for b in range(b1,b2+1): + st_b.add(b) + # print(st_a, st_b) + if len(st_a & st_b) > 0: + ans +=1 + + return ans