전체 글 457

79. Word Search ☆★★

79. Word Search ✅ 먼저 흐름 짚자퍼져나가면서 문자를 찾아야 하니까→ 당연히 DFS나 BFS 둘 다 가능해.그런데,"한 번 간 경로만 따라가야 해" (방문한 곳 재방문 X)"중간에 틀리면 바로 백트래킹" 해야 함이런 문제에서는 DFS + 백트래킹이 훨씬 자연스럽고 빠르다. 🚀(실제 LeetCode에서도 DFS 풀이를 추천하고 있어.)🔥 정리: Word Search는 DFS + 백트래킹 문제그래서 너가 처음 떠올린 "dfs 재귀 괜찮은가?"→ 네! 완전 괜찮고 오히려 정석이야.내 코드class Solution: def exist(self, board: List[List[str]], word: str) -> bool: # 퍼져 나가야하기때문에, bfs 인듯한데? 그래도 df..

LeetCode/Grind169 2025.04.27

5. Longest Palindromic Substring ☆★★ (잘 풀리면, DP도 이해하자!)

5. Longest Palindromic Substring 내 처음 코드class Solution: def longestPalindrome(self, s: str) -> str: # 가장 긴 연속 부분문자열 중 Palindrome(좌우 반대 동일)인 문자열 l, r = 0, 0 max_ln = 0 for r in range(1, len(s)): strs = s[l:r+1] while strs == strs[::-1]: max_ln= max(max_ln, r-l+1) l+=1 return max_ln 좋아! 네가 지금 쓰고 있는 방식은아이디어는..

LeetCode/Grind169 2025.04.27

8. String to Integer (atoi) ☆☆★

8. String to Integer (atoi) 지금 문자열을 int로 변환하는 myAtoi 함수를 직접 짜고 있는데,잘못된 부분이 몇 개 있어서 정확하게 짚어줄게. 👏❗ 문제점 1 — 부호(+, -) 체크가 잘못됨if s[i] not in valid: breakif s[i] not in op: break이렇게 되면 숫자도 아니고, 부호도 아니면 끊어야 하는데,네 코드에서는 숫자가 아니기만 해도 바로 break 되어버려.즉, -42 같은 걸 만나면,-는 숫자가 아니니까 첫 줄에서 바로 break 됨 ❗실제로는 부호는 받아야 하는데.✅ 고쳐야 해:첫 번째 글자는 부호일 수도 있고, 숫자일 수도 있음그 이후부터는 숫자만 와야 함❗ 문제점 2 — if s[i] not in valid와 if s[..

LeetCode/Grind169 2025.04.26

416. Partition Equal Subset Sum: DP로 꼭 풀어야! ☆☆★★★

416. Partition Equal Subset Sum Partition Equal Subset Sum 문제는 DP(동적 계획법) 클래식 문제야. ✨✅ 문제 요약nums 배열을 두 부분으로 나누어서각 부분의 합이 같게 만들 수 있는지 True/False로 답하는 문제야.🧠 핵심 아이디어전체 합(total)을 먼저 구한다.total이 홀수면, 두 부분으로 절대 나눌 수 없다 → 바로 Falsetotal이 짝수면, target = total // 2로 설정한다.그다음, nums 중 일부 원소를 골라서 합이 target이 되는 조합이 있는지 찾는 문제로 바뀐다.👉 이건 Subset Sum 문제야!✨ 풀이 전략 (DP)dp[i] = sum이 i가 되는 부분집합이 가능한가?dp[0] = True (합 0은 ..

LeetCode/Grind169 2025.04.26

Linear Regression (Forward): 선형 회귀 (모델 구현)

Linear Regression (Forward) 📘 문제 설명: 선형 회귀 (Linear Regression) 모델 구현🎯 목표선형 회귀 모델을 통해 입력 데이터 X에 대해 예측값을 구하고,예측값과 실제 정답 간의 오차(error) 를 계산하는 함수를 구현하는 것입니다.🔢 주어진 입력1. get_model_prediction(X, weights) 함수의 입력:X: 입력 데이터셋.X는 n×3 행렬 형태이며, 각 행은 3개의 특성(피처)을 가집니다. 예:X = [ [x1_1, x1_2, x1_3], # 첫 번째 샘플 [x2_1, x2_2, x2_3], # 두 번째 샘플 ...]weights: 모델의 가중치 벡터, 길이 3인 리스트로 구성됨.예: [w1, w2, w3]2. get_error(m..