From 36dee823e98a744a639033d607ccddad7c54eb3e Mon Sep 17 00:00:00 2001 From: masterMJ Date: Thu, 27 Aug 2026 22:39:05 +0900 Subject: [PATCH 1/3] Create 4024_Nearest_Available_Drone.py --- .../4024_Nearest_Available_Drone.py" | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 "leetcode3/\352\271\200\353\257\274\354\240\234/4024_Nearest_Available_Drone.py" diff --git "a/leetcode3/\352\271\200\353\257\274\354\240\234/4024_Nearest_Available_Drone.py" "b/leetcode3/\352\271\200\353\257\274\354\240\234/4024_Nearest_Available_Drone.py" new file mode 100644 index 00000000..0ea9e3c3 --- /dev/null +++ "b/leetcode3/\352\271\200\353\257\274\354\240\234/4024_Nearest_Available_Drone.py" @@ -0,0 +1,27 @@ +import sys + +class Solution: + def nearestDrone(self, drones: list[list[int]], target: list[int]) -> int: + answer = sys.maxsize + answer_arr = [] + answer_i = [] + for i,num in enumerate(drones): + temp = abs(num[0]-target[0])+abs(num[1]-target[1]) + if temp <= num[2]: + answer = min(answer,temp) + answer_arr.append(answer) + answer_i.append(i) + if not answer_i: + return -1 + else: + return answer_i[answer_arr.index(min(answer_arr))] + + +drones = [[4,4,5]] +target = [8,6] + +#drones = [[2,1,5],[4,4,5],[6,6,8]] +#target = [5,5] + +solution = Solution() +print(solution.nearestDrone(drones,target)) From 611937e332d0e4c5f9a85ccb60b644af51ce8a8e Mon Sep 17 00:00:00 2001 From: masterMJ Date: Thu, 27 Aug 2026 22:39:52 +0900 Subject: [PATCH 2/3] Create 907_Sum_Minimums.py --- .../907_Sum_Minimums.py" | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 "leetcode3/\352\271\200\353\257\274\354\240\234/907_Sum_Minimums.py" diff --git "a/leetcode3/\352\271\200\353\257\274\354\240\234/907_Sum_Minimums.py" "b/leetcode3/\352\271\200\353\257\274\354\240\234/907_Sum_Minimums.py" new file mode 100644 index 00000000..002db313 --- /dev/null +++ "b/leetcode3/\352\271\200\353\257\274\354\240\234/907_Sum_Minimums.py" @@ -0,0 +1,29 @@ +class Solution: + def sumSubarrayMins(self, arr: list[int]) -> int: + MOD = 10**9 + 7 + n = len(arr) + + left = [0] * n + right = [0] * n + + stack = [] + + # 왼쪽에서 나보다 작은 값까지의 거리 + for i in range(n): + while stack and arr[stack[-1]] > arr[i]: + stack.pop() + + left[i] = i - stack[-1] if stack else i + 1 + stack.append(i) + + stack = [] + + # 오른쪽에서 나보다 작거나 같은 값까지의 거리 + for i in range(n - 1, -1, -1): + while stack and arr[stack[-1]] >= arr[i]: + stack.pop() + + right[i] = stack[-1] - i if stack else n - i + stack.append(i) + + return sum(arr[i] * left[i] * right[i] for i in range(n)) % MOD From 0488f2a9e030d732515c57670d7edb0be525352a Mon Sep 17 00:00:00 2001 From: masterMJ Date: Fri, 28 Aug 2026 09:12:50 +0900 Subject: [PATCH 3/3] Create 3996. Even Number of Knight Moves.py --- .../3996. Even Number of Knight Moves.py" | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 "leetcode3/\352\271\200\353\257\274\354\240\234/3996. Even Number of Knight Moves.py" diff --git "a/leetcode3/\352\271\200\353\257\274\354\240\234/3996. Even Number of Knight Moves.py" "b/leetcode3/\352\271\200\353\257\274\354\240\234/3996. Even Number of Knight Moves.py" new file mode 100644 index 00000000..03471763 --- /dev/null +++ "b/leetcode3/\352\271\200\353\257\274\354\240\234/3996. Even Number of Knight Moves.py" @@ -0,0 +1,9 @@ +class Solution: + def canReach(self, start: list[int], target: list[int]) -> bool: + start_parity = (start[0]+start[1])%2 + target_paritiy = (target[0]+target[1])%2 + + if start_parity == target_paritiy: + return True + else: + return False