#️⃣ Project 및 개발일지/Algorithm 문제 풀이

파이썬으로 배우는 알고리즘 책을 공부하며 풀었던 LeetCode문제들을 재정리해보자. # 문제 설명 739번 Daily Temperatures는 매일의 온도를 리스트를 받아서 해당 일자 기준, 며칠을 더 따뜻한 날씨를 기다려야 하는 지 출력하는 문제이다. # 풀이방법 1 - 책 풀이 참고 class Solution: def dailyTemperatures(self, temperatures: List[int]) -> List[int]: result = [0] * len(temperatures) stack = [] # (for문으로 temperatures 한 번만 순회하면서, stack에 인덱스를 저장) for i, t in enumerate(temperatures) : # stack에서 값을 꺼내어, 현재..
파이썬으로 배우는 알고리즘 책을 공부하며 풀었던 LeetCode문제들을 재정리해보자. # 문제 설명 225번 Implement Stack using Queues 는 스택을 이용해 다음 연산을 지원하는 큐를 구현하는 문제이다. # 풀이방법 1 (내 풀이) class MyStack: def __init__(self): self.q = deque() def push(self, x: int) -> None: self.q.append(x) def pop(self) -> int: return self.q.pop() def top(self) -> int: return self.q[-1] def empty(self) -> bool: if len(self.q) : return False else : return True..
파이썬으로 배우는 알고리즘 책을 공부하며 풀었던 LeetCode문제들을 재정리해보자. # 문제 설명 622번 Design Circular Queue는 원형 큐를 디자인 하는 문제이다. | 원형 큐 원리 | 앞쪽의 공간이 남아있을때, 끝과 앞쪽을 연결하여 앞쪽으로도 추가할 수 있도록 재활용 가능한 구조이다. # 풀이방법 1 (내 풀이) class MyCircularQueue: def __init__(self, k: int): # print("init") self.q = [None] * k self.q_len = k self.front_p = 0 self.rear_p = 0 def enQueue(self, value: int) -> bool: # print("enQueue : ", self.front_p, ..
파이썬으로 배우는 알고리즘 책을 공부하며 풀었던 LeetCode문제들을 재정리해보자. # 문제 설명 20번 Valid Parentheses는 입력된 괄호 쌍들이 순서에 맞게 잘 닫혀있는지 확인하는 문제이다. # 풀이방법 1 - 재귀 함수 이용하여 reverse (내 풀이) class Solution: def isValid(self, s: str) -> bool: checkStack = [] brackets = { '(' : ')', '{' : '}' , '[' : ']' } # bracket 쌍 보관 for c in s : if c in list(brackets.keys()): checkStack.append(c) # 시작 브라켓은 스택에 저장 else : if checkStack : # 맞지 않은 브라..
파이썬으로 배우는 알고리즘 책을 공부하며 풀었던 LeetCode문제들을 재정리해보자. # 문제 설명 21번 Merge Two Sorted List 는 연결 리스트를 뒤집는 문제이다. 위 문제는 혼자 풀려고 해보았지만, 푸는 도중에 꼬이고 어떤식으로 풀어야할지 전혀 감이 잡히지 않아 책 풀이를 참고하였다. 이 문제는 책 풀이를 보아도 쉽게 이해가 되지 않아서 이해하는데 꽤 걸렸다. # 풀이방법 1 - 재귀 구조로 연결 (책 풀이) # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def merge..
파이썬으로 배우는 알고리즘 책을 공부하며 풀었던 LeetCode문제들을 재정리해보자. # 문제 설명 92번 Reverse Linked List II 는 인덱스 m에서 n까지를 역순으로 만드는 문제이다. # 풀이방법 1 - 재귀 함수 이용하여 reverse (내 풀이) # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def reverseBetween(self, head: Optional[ListNode], left: int, right: int) -> Optional[ListNode]: # re..
HyeM207
'#️⃣ Project 및 개발일지/Algorithm 문제 풀이' 카테고리의 글 목록