Leetcode (32) 썸네일형 리스트형 Leetcode 155. Min Stack 월요일 파이팅! 오늘의 문제는 Min Stack을 구현하는 것이다. class MinStack: def __init__(self): self.stack = [] def push(self, val: int) -> None: self.stack.append(val) def pop(self) -> None: self.stack.pop() def top(self) -> int: return self.stack[-1] def getMin(self) -> int: return min(self.stack) # Your MinStack object will be instantiated and called as such: # obj = MinStack() # obj.push(val) # obj.pop() # param_.. Leetcode 380. Insert Delete GetRandom O(1) 오늘은 아침부터 기분이 무지 좋다. 내가 좋아하는 그릭 요거트랑 그래놀라를 베이글에 발라 먹고 ! 부모님께서 연구실까지 태워주셨는데 오늘 날씨도 최고다. 오늘 문제는 그냥 하나의 의 내장함수를 만드는 것이다. 파이썬의 기본 함수를 써서 쉽게 ! 아주 쉽게 해결하였다. class RandomizedSet: def __init__(self): self.set = [] def insert(self, val: int) -> bool: if val in self.set: return False self.set.append(val) return True def remove(self, val: int) -> bool: if val in self.set: self.set.remove(val) return True re.. Leetcode 151. Reverse Words in a String 오늘 힘차게 시작! 기죽지 말고 열심히만 하자! 아자아자 파이팅 오늘의 문제는 Reverse Words in a String이다. Input: s = "the sky is blue" Output: "blue is sky the" 인 문제이다. # 151. Reverse Words in a String class Solution: def reverseWords(self, s: str) -> str: s = s.split() for idx, word in enumerate(s[::-1]): s[idx] = word + ' ' s = ''.join(s) return s[:-1] 파이썬의 여러 method 덕분에 쉽게 (?) 뚝딱 했다! 처음에는 공백 기준으로 split하면 되지 않을까 싶어 s.split(' .. Leetcode 496. Next Greater Element I 오늘의 리트코드 문제는 ! Next Greater Element 1 이다. 처음에 문제를 보았을 때 이게 무슨 말인가 ~ 싶었다. 이해하는데 조금 시간이 걸렸다. class Solution: def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]: answer = [] len2 = len(nums2) for num in nums1: index = nums2.index(num) while index + 1 < len2: next_element = nums2[index + 1] if num < next_element: answer.append(next_element) break else: # since all integers.. Leetcode 993. Cousins in Binary Tree 월요일의 시작이다! 요즘 주말도 좋지만 월요일도 너무 좋은거 있지... 뭔가 나는 뭐든 할 수 있을 것 같은 자신감이 뿜뿜 넘치고 이번주에는 어떤 연구를 하고 무슨 논문을 읽을지 고르는 과정이 기대(?) 가 되기도 한다. 물론 한 수요일쯤 되면 주말 언제오나 기다리게 되지만... 암튼 월요일의 시작을 연구실에서 데이터 확인하고, 바로 리트코드로 !! 했다 신난당 오늘은 Binary tree에서 사촌 찾기이다. 뭔가 사촌이라 하니까 웃기긴 한데 ㅋㅋㅋ 여튼 사촌이다. 부모가 다르고, depth가 같은 것을 "cousins"라고 한다! # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, rig.. Leetcode 733. Flood Fill 오늘은 Flood fill 문제이다. 처음에 문제가 무슨 말인지 잘 몰라서 시간을 잡아먹었다. 이해하고 나서는 오랜만에 푸는 DFS 문제에 당황(?) 하여 시간을 잡아먹었다. 한때 1일 1 DFS 할 때에는 눈 감고는 못하지만 눈 뜨고 3분 안에 뚝딱 해치웠는데, 역시 인간은 망각의 동물이다. 하핫 class Solution: def floodFill(self, image: List[List[int]], sr: int, sc: int, newColor: int) -> List[List[int]]: row = len(image) col = len(image[0]) value = image[sr][sc] # DFS def DFS(i, j): if 0 Leetcode 567. Permutation in String Permutation in String이다. s1의 permutation이 s2 안에 있는지 확인하는 문제이다. 처음에 문제를 잘못 이해해서 s1의 substring의 permutation이 들어가있으면 되는건가,,,싶어서 permutations(s1, 2) 써서 어쩌구저쩌구 했는데 실패 ㅎ 그러면 permutation(s1, len(s1)) 해서 검색하면 되겠지...? 했는데 Time Limit Exceeded 실패 ... Sliding Window를 이용해서 겨우 Accept받았으나 시간이 너무 오래 걸려서 ( 내 밑에 5.01% 밖에 없었다구요 흑흑) 수정하고 수정하다가 결국 또 실패 ~ 오늘 100000번의 실패 목표 중 5번의 실패를 축적하였다. 이제 한 384번 정도 되었으려나? 십만번의 실패.. Leetcode 3. Longest Substring Without Repeating Characters 오늘의 Leetcode는, repeating character가 없는 substring 중 가장 긴 substring의 길이를 찾는 문제이다. class Solution: def lengthOfLongestSubstring(self, s: str) -> int: sub = '' answer = 0 for c in s: if c not in sub: sub += c else: sub = sub[sub.index(c) + 1:] + c answer = max(answer, len(sub)) return answer slicing을 이용하였다. 만약 지금 가리키고 있는 글자가 있었다면, 그 글자의 뒤부터 ~ 새로운 글자까지의 길이와 넣지 않았을 때의 길이를 비교하는 것이다. 만약 c가 substring의 처음.. 이전 1 2 3 4 다음