LeetCode 43. Multiply Strings
문제 설명 Multiply Strings - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform
문제 설명 Multiply Strings - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform
문제 설명 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 ...
문제 설명 Remove Vowels from a String - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform
문제 설명 Integer to English Words - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform
문제 설명 Valid Palindrome - LeetCode 해설 코드 풀이 Python Javascript 참고 및 출처 programmers Coding Test LeetCode - The World’s Leading Online Programming Learning Platform
문제 설명 Edit Distance - LeetCode 두 개의 문자열 word1과 word2가 주어질 때, 첫 번째 문자열을 두 번째 문자열로 변환하기 위한 최소 편집 횟수를 구하는 문제입니다. ✅ 편집 연산 (Operations) 삽입 (Insert) → 문자를 추가 삭제 (Delete) → 문자를 제거 변경 (Replace) → 문자를 다른 문자로 변경 ✅ 제약 조건 0 ≤ word1.length, word2.length ≤ 500 최적화된 O(m × n) 알고리즘이 필요 해설 1️⃣ 재귀 (O(3^N)) → 비효율적 모든 가능한 연산을 수행하여 최소 값을 찾음 시간 복잡도 O(3^N) → 매우 비효율적 사용하지 않음 2️⃣ 동적 계획법 (DP, O(m × n)) [추천] ✔ DP 테이블을 사용하여 중복 연산을 제거 ✔ 점화식: ...
문제 설명 Valid Parentheses - LeetCode 해설 문제 설명 주어진 문자열 s가 유효한 괄호 문자열인지 확인하는 문제입니다. 문자열에는 다음과 같은 괄호만 포함될 수 있습니다. () (소괄호) {} (중괄호) [] (대괄호) ✅ 유효한 괄호 문자열의 조건: 열린 괄호는 반드시 닫힌 괄호와 짝을 이뤄야 함 닫힌 괄호가 열린 괄호보다 먼저 나오면 안 됨 괄호의 순서가 올바르게 짝을 이뤄야 함 예제 예제 1 1 s = "()" 🔹 출력: True (괄호가 올바르게 닫힘) 예제 2 1 s = "()[]{}" 🔹 출력: True (괄호 쌍이 모두 유효함) ...