LeetCode/NeetCode 98

[LinkedLists: Fast and Slow Pointers] 2130. Maximum Twin Sum of a Linked List ★★★

2130. Maximum Twin Sum of a Linked List Reverse 뒤집은 노드 만들기curr = head # 원래 리스트의 시작prev = None # 뒤집힌 리스트의 시작 (처음엔 없음)while curr: next = curr.next # 다음 노드 기억 curr.next = prev # 현재 노드의 방향을 뒤집음 prev = curr # prev를 현재 노드로 업데이트 curr = next # 다음 노드로 이동 이 루프가 끝나면:curr은 None (즉, 리스트 끝을 넘은 상태)prev는 뒤집힌 리스트의 시작 지점, 즉 새로운 head!🔍 예를 들어서:리스트가 1 → 2 → 3 ..

LeetCode/NeetCode 2024.11.15

[Prefix Sums] 238. Product of Array Except Self ☆

238. Product of Array Except Self  문제 풀이이 문제는 주어진 배열 nums에서, 각 요소를 제외한 나머지 요소들의 곱을 계산하여 결과 배열을 반환하는 문제입니다. 나눗셈 없이, 시간 복잡도 O(n) 로 해결해야 합니다.문제 조건각 answer[i] 는 배열 nums의 i 번째 요소를 제외한 나머지 요소들의 곱입니다.나눗셈 사용 금지: 단순히 배열 전체 곱을 구한 뒤 각 요소로 나누는 방식은 사용할 수 없습니다.시간 복잡도는 O(n), 공간 복잡도는 O(1) 추가 공간(결과 배열은 제외).풀이 방법1. 아이디어배열의 곱을 효율적으로 계산하려면 다음과 같은 접근법을 사용할 수 있습니다:왼쪽 누적 곱 (prefix product): 각 요소 iii에서, 왼쪽에 있는 모든 요소들의 ..

LeetCode/NeetCode 2024.11.11

[Trees: Trie] 208. Implement Trie (Prefix Tree)

208. Implement Trie (Prefix Tree) https://youtu.be/oobqoCJlHA0?si=rB7vqpOg4d0DiFd1 https://youtu.be/j7Zkw5XWe_Q?si=-yC7nuoxBULmLBuD 이 문제는 Trie(트라이) 자료 구조를 구현하는 것입니다. Trie는 문자열을 효율적으로 저장하고 검색하기 위해 사용되는 트리 형태의 자료 구조입니다. 이 자료 구조는 주로 자동완성, 단어 검색, 접두사 검색과 같은 작업에서 사용됩니다.  Code  # TrieNode 클래스: Trie의 각 노드를 정의class TrieNode: def __init__(self): self.children = {} # 자식 노드를 저장할 해시맵. 키는 문자, 값은 T..

LeetCode/NeetCode 2024.11.09