File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ #
2+
3+ '''
4+ 1. 아이디어 :
5+ 투포인터를 사용.
6+ i에 위치한 숫자가 왼쪽+오른쪽 값보다 작으면 삼각형이 만들어진다.
7+ 오른쪽 포인터를 이동하여 유요한지 확인
8+ else
9+ 왼쪽 포인터를 이동.
10+
11+ 2. 시간복잡도 :
12+ O(n*n)
13+
14+ 3. 자료구조/알고리즘 :
15+ 투포인터
16+
17+ '''
18+ class Solution :
19+ def triangleNumber (self , nums : List [int ]) -> int :
20+ nums .sort ()
21+ n = len (nums )
22+ ans = 0
23+
24+ for i in range (n - 1 , 1 , - 1 ):
25+ left = 0
26+ right = i - 1
27+
28+ while left < right :
29+ if nums [left ] + nums [right ] > nums [i ]:
30+ ans += right - left
31+ right -= 1
32+ else :
33+ left += 1
34+ return ans
35+
36+ # nums.sort()
37+ # def binary_search(side1, side2, mid_index):
38+ # left = mid_index
39+ # right = n
40+
41+ # while left < right:
42+ # mid = (left+right) // 2
43+ # longest = nums[mid]
44+ # if longest < side1 + side2:
45+ # left = mid+1
46+ # else:
47+ # right = mid
48+ # return left
49+
50+ # n = len(nums)
51+ # ans = 0
52+ # for i in range(n):
53+ # if nums[i] == 0:
54+ # continue
55+ # for j in range(i+1, n):
56+ # end = binary_search(nums[i], nums[j], j+1)
57+ # ans += end - (j+1)
58+ # return ans
You can’t perform that action at this time.
0 commit comments