LeetCode/Top Interview 150 106

209. Minimum Size Subarray Sum

209. Minimum Size Subarray Sum https://youtu.be/aYqYMIqZx5s?si=65RqKA5cewrGgD2Q class Solution: def minSubArrayLen(self, target: int, nums: List[int]) -> int: # 문제에서 'subarray'가 언급되면 슬라이딩 윈도우 문제일 가능성이 높음 l, total = 0, 0 # l: 윈도우의 왼쪽 끝 인덱스, total: 현재 윈도우의 합 res = float("inf") # 결과 값을 저장할 변수. 최소 길이를 구하기 위해 초기값을 무한대로 설정 # r은 윈도우의 오른쪽 끝 인덱스를 나타냄 for r in range..

125. Valid Palindrome

125. Valid Palindrome 내 코드 class Solution: def isPalindrome(self, s: str) -> bool: """ isalnum은 **"is alphabetic or numeric"**의 약자로, 알파벳 또는 숫자인지 확인하는 메서드입니다. - is: "인지 확인"을 의미 (True/False 결과 반환). - al: alphabetic(알파벳)의 약자. - num: numeric(숫자)의 약자. 숫자 이거나 알파벳이면 True isdigit(): 숫자인지 확인 """ only_alnum = "" for w in s: ..

28. Find the Index of the First Occurrence in a String

28. Find the Index of the First Occurrence in a String https://youtu.be/Gjkhm1gYIMw?si=amLg-uiF5c1EAVDv class Solution: def strStr(self, haystack: str, needle: str) -> int: # needle이 빈 문자열인 경우, 요구사항에 따라 0을 반환 if needle == "": return 0 # needle이 haystack에 포함되지 않으면, 바로 -1을 반환 # 이 조건은 불필요한 반복을 줄여 효율성을 높여줌 if needle not in haystack: return ..

6. Zigzag Conversion

6. Zigzag Conversion https://youtu.be/Q2Tw6gcVEwc?si=uqM3oulxloxx3h1P class Solution: def convert(self, s: str, numRows: int) -> str: # numRows가 1인 경우 변환할 필요가 없으므로 입력 문자열 그대로 반환 if numRows == 1: return s res = "" # 변환된 결과 문자열을 저장할 변수 # 각 행(row)을 순회하며 변환된 문자열을 생성 for r in range(numRows): increment = 2 * (numRows - 1) # 각 주기에서의 문자 간격 (..

42. Trapping Rain Water

42. Trapping Rain Water https://youtu.be/ZI2z5pq0TqA?si=vMNp4_SRqkju2a6b  O(n) 공간 사용from typing import Listclass Solution: def trap(self, height: List[int]) -> int: # 높이 배열의 길이를 가져옵니다. n = len(height) # 배열이 비어있는 경우 0을 반환 (예외 처리) if not n: return 0 # maxLeft: 각 위치에서 왼쪽으로 가장 높은 기둥의 높이를 저장할 리스트 # maxRight: 각 위치에서 오른쪽으로 가장 높은 기둥의 높이를 저장할 리스트 ..