From 9219dfff82b36e698d62e37d0b9a8d100b324599 Mon Sep 17 00:00:00 2001 From: rimogsu Date: Thu, 15 Oct 2026 22:38:43 +0900 Subject: [PATCH] 1124,239 --- ...1124. Longest Well-Performing Interval.py" | 27 +++++++++++++++++++ .../v3/239. Find Closest Number to Zero.py" | 24 +++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 "leetcode3/\353\263\200\354\247\200\355\230\221/v3/1124. Longest Well-Performing Interval.py" create mode 100644 "leetcode3/\353\263\200\354\247\200\355\230\221/v3/239. Find Closest Number to Zero.py" diff --git "a/leetcode3/\353\263\200\354\247\200\355\230\221/v3/1124. Longest Well-Performing Interval.py" "b/leetcode3/\353\263\200\354\247\200\355\230\221/v3/1124. Longest Well-Performing Interval.py" new file mode 100644 index 00000000..141fb00f --- /dev/null +++ "b/leetcode3/\353\263\200\354\247\200\355\230\221/v3/1124. Longest Well-Performing Interval.py" @@ -0,0 +1,27 @@ + +class Solution: + def run(self, hours): + lst = [1 if hour > 8 else -1 for hour in hours] + n = len(lst) + tmp = [0] * n + tmp[0] = max(lst[0],0) + for i in range(1,n): + tmp[i] = max(tmp[i-1]+lst[i],0) + print(tmp) + + streak = 0 + _max = -1 + for i in tmp: + # print(i, streak, _max) + if i != 0: + streak +=1 + else: + streak = 0 + + if streak > _max: + _max = streak + + return _max + + def longestWPI(self, hours: list[int]) -> int: + return max(self.run(hours), self.run(hours[::-1])) \ No newline at end of file diff --git "a/leetcode3/\353\263\200\354\247\200\355\230\221/v3/239. Find Closest Number to Zero.py" "b/leetcode3/\353\263\200\354\247\200\355\230\221/v3/239. Find Closest Number to Zero.py" new file mode 100644 index 00000000..60482d97 --- /dev/null +++ "b/leetcode3/\353\263\200\354\247\200\355\230\221/v3/239. Find Closest Number to Zero.py" @@ -0,0 +1,24 @@ +''' +1. 아이디어 : +절대값 작은거 찾고, 해당 num을 기록해둠. +그리고 같은 절대값이 나오면 num끼리 비교해서 더 큰거 선택 + +2. 시간복잡도 : +o(n) + +3. 자료구조/알고리즘 : +''' +class Solution: + def findClosestNumber(self, nums: list[int]) -> int: + _min, value = 9999999, 9999999 + + for num in nums: + print(num, _min,value) + if abs(num) < _min: + _min,value = abs(num), num + elif abs(num) == _min: + if num > value: + value = num + + return value + \ No newline at end of file