LeetCode 819. Most Common Word

문제 설명 Most Common Word - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform

March 3, 2025 · 1 min · Me

LeetCode 14. Longest Common Prefix

문제 설명 Longest Common Prefix - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform

March 2, 2025 · 1 min · Me

LeetCode 232. Implement Queue using Stacks

문제 설명 Implement Queue using Stacks - LeetCode 해설 두 개의 스택을 사용하여 큐(Queue)를 구현하는 문제입니다. 큐는 FIFO (First-In-First-Out, 선입선출) 원칙을 따릅니다. 즉, 먼저 들어간 요소가 먼저 나와야 합니다. ✅ 구현해야 할 기능 push(x): 요소 x를 큐의 뒤쪽(enqueue) 에 추가 pop(): 큐의 앞쪽(dequeue) 요소를 제거하고 반환 peek(): 큐의 앞쪽 요소를 조회(제거 없이 확인) empty(): 큐가 비어 있는지 확인 접근 방법 (Two Stack Approach) 큐를 구현하기 위해 두 개의 스택 (stack1, stack2) 을 사용합니다. ...

March 2, 2025 · 3 min · Me

LeetCode 301. Remove Invalid Parentheses

문제 설명 Remove Invalid Parentheses - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform

March 2, 2025 · 1 min · Me

LeetCode 42. Trapping Rain Water

문제 설명 Trapping Rain Water - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform

March 1, 2025 · 1 min · Me

LeetCode 43. Multiply Strings

문제 설명 Multiply Strings - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform

March 1, 2025 · 1 min · Me

LeetCode 509. Fibonacci Number

문제 설명 Fibonacci Number - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform

March 1, 2025 · 1 min · Me

LeetCode 871. Minimum Number of Refueling Stops

문제 설명 Minimum Number of Refueling Stops - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform

February 28, 2025 · 1 min · Me

LeetCode 9. Palindrome Number

문제 설명 Palindrome Number - LeetCode 주어진 정수 x가 팰린드롬 수(Palindrome Number) 인지 판별하는 문제입니다. ✅ 팰린드롬(Palindrome)이란? 앞에서 읽어도, 뒤에서 읽어도 같은 수 예: 121, 1221, 12321 ✅ 예: 10, -121 ❌ (- 부호가 있으므로 불가능) ✅ 제약 조건 음수는 팰린드롬이 될 수 없음 (부호가 다르므로) 맨 끝이 0인 경우도 팰린드롬이 될 수 없음 (단, 0 자체는 가능) 해설 1️⃣ 문자열 변환 방식 (O(N), 추가 공간 필요) 숫자를 문자열(str) 로 변환 후 거꾸로 뒤집어 비교 시간 복잡도: O(N) (문자열 길이만큼 비교) 공간 복잡도: O(N) (새로운 문자열 생성) 2️⃣ 숫자 연산 방식 (O(log N), 추가 공간 없이 해결) [추천] 숫자를 뒤집어 원래 숫자와 비교 추가 공간을 사용하지 않음 → 효율적 시간 복잡도: O(log N) (숫자의 자릿수만큼 반복) 공간 복잡도: O(1) (추가 배열 없음) 코드 풀이 Python 1 2 3 4 5 6 7 8 9 10 def isPalindrome(x: int) -> bool: if x < 0 or (x % 10 == 0 and x != 0): # 음수 또는 10, 100 같은 숫자 제외 return False reversed_half = 0 while x > reversed_half: # 숫자의 절반만 뒤집기 reversed_half = reversed_half * 10 + x % 10 x //= 10 # 마지막 자리 제거 return x == reversed_half or x == reversed_half // 10 # 짝수, 홀수 길이 비교 Javascript 1 2 3 4 5 6 7 8 9 10 11 var isPalindrome = function(x) { if (x < 0 || (x % 10 === 0 && x !== 0)) return false; let reversedHalf = 0; while (x > reversedHalf) { reversedHalf = reversedHalf * 10 + x % 10; x = Math.floor(x / 10); } return x === reversedHalf || x === Math.floor(reversedHalf / 10); }; 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform ...

February 28, 2025 · 2 min · Me

LeetCode 45. Jump Game II

문제 설명 Jump Game II - LeetCode 배열 nums가 주어질 때, 각 인덱스에서 점프할 수 있는 최대 거리가 배열 요소로 주어집니다. 첫 번째 인덱스(0)에서 마지막 인덱스(n-1)로 이동하는 최소 점프 횟수를 구하는 문제입니다. ✅ 제약 조건 항상 마지막 인덱스로 도달할 수 있음 (즉, 도달 불가능한 경우는 없음) 1 ≤ nums.length ≤ 10⁴ 0 ≤ nums[i] ≤ 1000 해설 1️⃣ DP (O(N²)) → 비효율적 각 인덱스에서 모든 가능한 점프를 고려하여 최적해를 찾음 시간 복잡도 O(N²) 으로 큰 입력에서 비효율적 2️⃣ 그리디 알고리즘 (O(N)) [추천] 각 단계에서 최적의 점프 선택 (가장 멀리 갈 수 있는 지점 탐색) 현재 범위 내에서 점프 가능한 최대 위치를 갱신 한 번의 순회(O(N))로 해결 가능 코드 풀이 Python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def jump(nums): n = len(nums) jumps = 0 # 점프 횟수 farthest = 0 # 현재까지 도달할 수 있는 가장 먼 위치 end = 0 # 현재 점프에서 도달할 수 있는 최대 범위 for i in range(n - 1): farthest = max(farthest, i + nums[i]) # 최대 도달 범위 갱신 if i == end: # 현재 범위를 벗어나기 직전이면 점프 jumps += 1 end = farthest # 새로운 점프 범위 설정 return jumps Javascript 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 var jump = function(nums) { let jumps = 0; let farthest = 0; let end = 0; for (let i = 0; i < nums.length - 1; i++) { farthest = Math.max(farthest, i + nums[i]); if (i === end) { jumps++; end = farthest; } } return jumps; }; 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform ...

February 26, 2025 · 2 min · Me