Skip to content

Commit 7222a8f

Browse files
Merge pull request #1826 from CodingTestStudy2/최원준
[최원준] Day15
2 parents b195ec9 + 0f0cfd4 commit 7222a8f

2 files changed

Lines changed: 81 additions & 0 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#
2+
3+
'''
4+
1. 아이디어 :
5+
10000만까지 count하면서 존재하지 않으면 k를 감소.
6+
k가 0 이면 해당 숫자가 답
7+
8+
2. 시간복잡도 :
9+
O(10000)
10+
11+
3. 자료구조/알고리즘 :
12+
-
13+
14+
'''
15+
16+
class Solution:
17+
def findKthPositive(self, arr: List[int], k: int) -> int:
18+
num_set = set(arr)
19+
for i in range(1, 10000):
20+
if i not in num_set:
21+
k-=1
22+
if k == 0:
23+
return i
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
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

0 commit comments

Comments
 (0)