전체 글 51

(간단한 코드)리트코드 83. Remove Duplicates from Sorted List

우선 Duplicate는 "중복"이라는 의미로, 알고리즘 문제를 풀다보면, 자주 등장하는 녀석이다. 연결 리스트가 뭔지는 많은 사람들이 알겠지만, 어떤 구조로 되어 있는지는 잘 모르는 사람들이 많다.linked list 연결 리스트는 아래와 같이 만들어진다.class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next# 1->1->2->3->3->4 순서로 되어 있는 연결 리스트는 다음과 같이 만들어진다.head = ListNode(1, ListNode(1,ListNode(2,ListNode(3,ListNode(3,ListNode(4))))))cur = headprint(head.va..

(간단한 코드)리트코드 155. Min Stack

이 문제는 stack에 필요한 기능들을 담고 있는 클래스를 만드는 문제다.각 기능을 제대로 이해하는 것보다는 파이썬에서 클래스가 어떤 구성으로 이루어지는지 알아보는 방향으로 가겠다.class MinStack: def __init__(self): self.stk = [] self.min_stk = [] def push(self, val: int) -> None: self.stk.append(val) if not self.min_stk: self.min_stk.append(val) elif self.min_stk[-1] None: self.stk.pop() self.min_s..

(간단한 코드)리트코드 739. Daily Temperatures

이 문제는 온도 정보를 담고 있는 리스트의 각 인덱스가 날씨 순서라고 하면, 더 따뜻한 날이(더 큰 숫자가) 오기까지 얼마나 걸리는지 리스트로 정리하는 문제다.  그렇다면, 우선 온도를 비교할 기준이 되는 숫자 변수, 더 큰 숫자에 관한 변수, 숫자 끼리의 인덱스 거리를 나타내는 변수 등등많은 변수를 고려해야 하는 문제는 기본적으로 for문과 while문의 합작으로 이루어진다고 생각할 수 있다.  우선 오답 코드를 보면 다음과 같다.class Solution: def dailyTemperatures(self, temperatures: List[int]) -> List[int]: lt = len(temperatures) ans = [] i = 0 wh..