leetcode30 Leet code 53 - Maximum Subarray 브루트포스를 활용한 풀이 내풀이 class Solution: def maxSubArray(self, nums: List[int]) -> int: sum1 = -100000 max_num = -100000 if len(nums) ==1: return nums[0] for i in range(len(nums)): sum1 = nums[i] if sum1 > max_num: max_num = sum1 for j in range(i+1,len(nums)): sum1 += nums[j] if sum1 > max_num: max_num = sum1 if sum1 > max_num: max_num = sum1 return max_num 시간초과. 좀더 깔끔한 브루트포스 class Solution: def maxSub.. 2023. 4. 14. Leet code 238 - Product of Array Except Self 시간 복잡도로 O(N) 공간복잡도로 O(1) 제약 조건이 걸려있다. product 는 곱의 영어 표현으로써 더 일반적이라고 한다. 배열안에서, 해당 인덱스의 num 값만 곱해지지 않은 값을 리스트에 넣고, 그 리스트를 반환해야 하는 문제이다. 나의 풀이 실제 그 리스트를 조작하거나 해당 요소를 제거하고 곱하는 방식으로 결과값을 구하면 어떨까 생각을 해보았으나, 해당 값이 하나가 아니라, 지속적으로 구해 새 리스트에 넣어줘야하기 때문에, 리스트 조작보다는, 전체의 곱을 구하고, 해당 인덱스 값만 나눠서 결과값을 구하는 방식을 생각했다. 하지만 배열에 0이 있다면 어떨까? 일단 해당 인덱스 값만 나눠서 반환한다는 발상이, 0으로는 나눌 수 없기에 역서 문제의 난점이 생겼다. 이를 조건 문으로 처리해줬다. c.. 2023. 4. 13. Leet code 217 - Contains Duplicate 파이썬 내부함수인 set을 통해 자료형 변환을 하고, 중복제거해 중복제거한것과 길이가 다르다면 duplicate가 있다고 판단, True를 반환했다. 아니면 그대로 false. 매우 간단하게 풀렸지만, 학습의 본질과 맞지 않은 것 같아. 다른 풀이도 공부해보기로 했다. 나의 풀이 class Solution(object): def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ if len(set(nums)) != len(nums): return True return False 문득 내가쓴 함수의 시간복잡도가 궁금해졌다. 파이썬 함수의 시간복잡도. len 함수는 O(1)의 시간 복잡도를 가지고 있다고 한다. len함 수가 .. 2023. 4. 12. Leet code 121 - Best Time to Buy and Sell Stock array 문제이다. 문제 조건을 차분히 따라가기만 하면 되는 쉬운 문제 였다. 처음에는 min과 max를 생각했다. 하지만 시간순이라는게 존재하고, 최악의 경우 내림차순 정렬이라면 아에 수익을 낼 수 없다 for문으로 차근차근 해결하면 답이나오지 않을까.. 일단 최소값 변수를 만들어 최소값을 갱신하고, 현재값에서 최소값을 빼 max_profit을 갱신한다. 처음에는 모든 profit을 배열 자료구조에 저장해 최대값을 구할까 생각했지만, 굳이 그럴 필요가 없다. class Solution(object): def maxProfit(self, prices): """ :type prices: List[int] :rtype: int """ #그냥 리스트에서 최저 최고 뽑는건 안된다. #시간을 따르고 있기 때문에.. 2023. 4. 11. 이전 1 ··· 4 5 6 7 8 다음