스택/큐

파이썬으로 배우는 알고리즘 책을 공부하며 풀었던 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 : # 맞지 않은 브라..
HyeM207
'스택/큐' 태그의 글 목록