파이썬 알고리즘 : Container With Most Water

2024년 5월 23일 알고리즘 문제풀이 문제 Container With Most Water 난이도 medium 코드 1차시도 시간초과(50/62) 모두 탐색했는데 시간초과가 떴다. 1 2 3 4 5 6 7 8 9 10 11 12 class Solution: def check(self,a,b,height): val = min(height[a], height[b]) return abs(b-a)*val def maxArea(self, height: List[int]) -> int: n = len(height) ans = 0 for a in range(n-1): for b in range(a+1,n): ans = max(ans, self.check(a,b,height)) return ans 2차시도 메모리초과(49/62) 인덱스 중 2개를 골라 처리하려 했는데 2개의 숫자 조합을 만들기 위한 배열이 메모리초과가 떴다. 아무래도 접근 방법 자체가 틀린것같다. ...

2024년 5월 23일 · 2 분 · 배준수

파이썬 알고리즘 : Longest Common Prefix

2024년 5월 16일 알고리즘 문제풀이 문제 Longest Common Prefix 난이도 Easy 코드 1 2 3 4 5 6 7 8 9 10 class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: word = strs[0] for i in range(1,len(strs)): for j in range(1,len(word)+1): if word[:j] != strs[i][:j]: word = word[:j-1] break return word Set로 풀어보려했는데, 맨 앞에서부터 공통을 찾아야 했다. 더 좋은 방법은 안 떠오르는데.. ...

2024년 5월 16일 · 1 분 · 배준수

파이썬 알고리즘 : two-sum

2024년 5월 9일 알고리즘 문제풀이 문제 two-sum 난이도 Easy 코드 1차시도 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 class Solution: def twoSum(self, nums, target: int): board = dict() idx_arr = dict() answer = [] for i in range(len(nums)): if nums[i] not in board: board[nums[i]] = 1 else: board[nums[i]] += 1 for i in range(len(nums)): if nums[i] not in idx_arr: idx_arr[nums[i]] = [i] else: idx_arr[nums[i]].append(i) for i in range(-target,target+1,1): if i in board and target-i in board: if i != target-i: answer = [idx_arr[i][0],idx_arr[target-i][0]] break else: if board[i] >= 2: answer = [idx_arr[i][0], idx_arr[i][1]] break return answer 다 조회하면 시간이 초과될 것 같아, dictionary를 이용하려 했다. target이 0일 떈 조합을 찾는 반복문이 제대로 작동하지 않아 오답처리되었다. ...

2024년 5월 9일 · 1 분 · 배준수

파이썬 알고리즘 : Build Array from Permutation

2024년 5월 2일 알고리즘 문제풀이 문제 Build Array from Permutation 난이도 Easy 코드 1 2 3 4 5 6 class Solution: def buildArray(self, nums: List[int]) -> List[int]: ans = [0 for _ in range(len(nums))] for i in range(len(nums)): ans[i] = nums[nums[i]] return ans

2024년 5월 2일 · 1 분 · 배준수

파이썬 알고리즘 : Score of a String

2024년 4월 18일 알고리즘 문제풀이 문제 Score of a String 난이도 Easy 코드 1 2 3 4 5 6 class Solution: def scoreOfString(self, s: str) -> int: answer = 0 for i in range(len(s)-1): answer += abs(ord(s[i]) - ord(s[i+1])) return answer ord() : 문자의 아스키코드 숫자 값을 반환 chr() : 숫자의 아스키코드 숫자 값을 반환

2024년 4월 18일 · 1 분 · 배준수