일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- dfs
- heap
- 슬라이딩윈도우
- 파이썬
- SQL
- 파이썬알고리즘
- tree
- 생성형AI
- Stack
- GenAI
- 릿코드
- two-pointer
- codeup
- LeetCode
- medium
- 투포인터
- gcp
- 코드업
- stratascratch
- slidingwindow
- 니트코드
- 자연어처리
- 파이썬기초100제
- nlp
- 알고리즘
- Python3
- GenerativeAI
- sql코테
- 리트코드
- Python
- Today
- Total
목록니트코드 (7)
Tech for good

https://neetcode.io/problems/last-stone-weight NeetCode neetcode.io🧩 문제 요약당신은 여러 개의 돌(stone)을 가지고 있고, 각 돌에는 무게가 있다.이 돌들을 다음 규칙에 따라 하나 또는 없을 때까지 부딪혀 없애는 시뮬레이션을 한다:🔨 시뮬레이션 규칙매 단계에서 가장 무거운 두 개의 돌을 선택한다. (x, y, 단, x ≤ y)두 돌을 서로 부딪힌다:x == y → 둘 다 파괴됨 (삭제)x != y → 작은 돌 x는 파괴되고, 큰 돌 y는 y - x 무게로 바뀜위 과정을 돌이 하나 이하로 남을 때까지 반복한다.🎯 최종 목표돌이 마지막에 하나 남으면 그 돌의 무게를 반환하고,아무것도 안 남으면 0을 반환한다.🔍 예제 설명예제 1:Input: ..

https://neetcode.io/problems/kth-largest-integer-in-a-stream NeetCode neetcode.io ✅ 문제 요약KthLargest라는 클래스를 만들어야 한다. 이 클래스는 다음 두 가지 기능을 제공한다:생성자 KthLargest(k, nums)→ 처음에 k번째로 큰 수를 추적할 수 있도록 정수 배열 nums를 받고 초기화한다.add(val) 메서드→ 새로운 값을 스트림(데이터 흐름)에 추가하고, 현재까지의 숫자들 중에서 k번째로 큰 수를 반환한다.📌 "k번째로 큰 수"란?숫자들을 내림차순으로 정렬했을 때, k번째에 오는 숫자를 말한다.예: nums = [1, 2, 3, 3], k = 2라면정렬: [3, 3, 2, 1] → 두 번째로 큰 수는 3이다.💡 ..

https://neetcode.io/problems/k-closest-points-to-origin NeetCode neetcode.io큐(Queue)는 선입선출(First In, First Out, FIFO)의 자료 구조로, 먼저 들어온 데이터가 먼저 나간다. 하지만 우선순위가 있는 작업에서는 큐의 기본 원칙을 따르지 않을 때가 있다. 우선순위 큐(Priority Queue) 는 들어온 순서와 상관없이 우선순위가 높은 데이터가 먼저 나가는 자료 구조다.힙( Heap)이란?힙(Heap)은 우선순위 큐를 구현하기 위한 자료 구조다. 힙의 뜻을 살펴보면, "쌓아 올린 더미" 또는 "쌓아 올리다"라는 의미를 가진다. 힙은 최댓값과 최솟값을 찾는 연산을 빠르게 하기 위해 고안된 완전 이진 트리를 기본으로 한며,..

https://neetcode.io/problems/binary-tree-right-side-view NeetCode neetcode.io첫번째 풀이 방법: BFS - Level Order Traversal각 레벨에서 가장 오른쪽에 있는 노드의 값만 저장하면 된다.BFS(너비 우선 탐색, Queue;)을 이용하여 레벨별 탐색을 수행한다.매 레벨의 마지막 노드 값을 결과 리스트에 추가한다.# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right =..

https://neetcode.io/problems/lowest-common-ancestor-in-binary-search-tree NeetCode neetcode.io공통 조상 찾기!🔹 BST(Binary Search Tree)의 특징 활용BST(이진탐색트리)에서는 왼쪽 서브트리의 모든 값이 루트보다 작고, 오른쪽 서브트리의 모든 값이 루트보다 큽니다.따라서, LCA를 찾는 과정에서 다음 규칙을 사용할 수 있습니다.p.val과 q.val이 모두 현재 노드보다 작으면, LCA는 왼쪽 서브트리에 있음.p.val과 q.val이 모두 현재 노드보다 크면, LCA는 오른쪽 서브트리에 있음.p.val과 q.val이 현재 노드 양쪽에 걸쳐 있다면, 현재 노드가 LCA임.# Definition for a binar..

https://neetcode.io/problems/permutation-string NeetCode neetcode.io🛠 해결 전략이 문제는 슬라이딩 윈도우(Sliding Window) + 해시맵(딕셔너리) 활용으로 O(n)에 해결할 수 있다.s1의 모든 문자 빈도 수를 계산 (char_count_s1).s2에서 길이가 len(s1)인 윈도우를 이동하며 같은 빈도 수를 갖는지 비교 (char_count_window).첫 번째 윈도우 확인 후 한 칸씩 이동하며 검사만약 동일한 빈도 수를 가지는 구간이 있다면 True 반환.class Solution: def checkInclusion(self, s1: str, s2: str) -> bool: n, m = len(s1), len(s2)..

https://neetcode.io/problems/is-palindrome NeetCode neetcode.io첫번째 방법 - String Manipulationclass Solution: def isPalindrome(self, s: str) -> bool: # 1. 알파벳과 숫자만 남기고 소문자로 변환 filtered_s = ''.join(c.lower() for c in s if c.isalnum()) # 2. 문자열을 뒤집어서 원래 문자열과 비교 return filtered_s == filtered_s[::-1]isalnum() -> 문자열이 문자 혹은 숫자로 되어있으면 참 리턴, 아니면 거짓 리턴시간 복잡도문자열 필터링: O..