728x90 전체 글297 [LeetCode] 560. Subarray Sum Equals K 이번 글에서는 560. Subarray Sum Equals K를 누적합과 해시맵으로 O(n)에 푸는 과정을 다루고, 짧은 코드 곳곳에 숨은 이유(맵에 0을 미리 넣는 이유, 횟수를 세는 이유, 조회를 먼저 하는 이유)를 하나씩 짚어 볼게요. 누적합으로 구간 합을 구하는 원리 자체가 낯설다면 구간합·누적합 이론 정리 글을 먼저 읽고 오시면 좋아요.1. 문제문제: 560. Subarray Sum Equals K — https://leetcode.com/problems/subarray-sum-equals-k/요약: 정수 배열에서 연속된 구간을 골랐을 때 합이 정확히 k가 되는 경우가 몇 가지인지 세는 문제예요. 배열에는 음수와 0도 섞일 수 있고, 같은 숫자로 이뤄진 구간이라도 위치가 다르면 따로 셉니다.난이.. 2026. 10. 23. [LeetCode] 209. Minimum Size Subarray Sum 이번에 풀어 본 문제는 209. Minimum Size Subarray Sum이에요. "연속된 구간의 합"을 다루는 문제에서 O(n²)을 O(n)으로 줄이는 연습용으로 아주 좋은 문제예요. 코드는 짧은데, "왜 startIndex를 올려 버려도 정답을 놓치지 않을까?" 이 부분에서 막히기 쉬워서, 이 글은 코드보다 그 이유를 설명하는 데 힘을 줬어요.슬라이딩 윈도우 개념 자체가 낯설다면 슬라이딩 윈도우 이론 정리 글을 먼저 읽고 오시면 좋아요. 고정 크기 윈도우와 가변 크기 윈도우, 중첩된 while이 O(n)인 이유(분할 상환) 같은 이론은 그 글에 정리돼 있고, 이 글에서는 이 문제에 필요한 부분만 다룰게요.1. 문제문제: 209. Minimum Size Subarray Sum — https://le.. 2026. 10. 21. [알고리즘 이론] 슬라이딩 윈도우(Sliding Window) 코딩테스트에서 “연속된 구간”이 나오면 가장 먼저 떠올려야 할 기법, 슬라이딩 윈도우를 그림과 코드로 정리해 봤어요.📌 이 글을 다 읽으면슬라이딩 윈도우가 왜 O(N)인지 설명할 수 있어요.문제를 보고 이 기법을 쓸 수 있는지 판별할 수 있어요.고정·가변 윈도우를 Java, Python, JavaScript로 직접 짤 수 있어요.1. 들어가며: 이중 for문은 왜 느릴까?블로그를 하다 보면 문득 이런 게 궁금해질 때가 있어요.“연속 3일 동안 방문자가 가장 많았던 기간은 언제였을까?”6일 동안의 방문자 수가 이렇다고 해 볼게요.21일12일53일14일35일26일가장 쉬운 방법은 시작 날짜를 하루씩 옮기면서 3일치를 매번 새로 더하는 것이에요. 이렇게 모든 경우를 직접 계산하는 방식을 브루트포스(Brute.. 2026. 10. 20. [LeetCode] 155. Min Stack 1. 문제문제: 155. Min Stack — https://leetcode.com/problems/min-stack/난이도: Medium유형: Stack, Designpush, pop, top은 기본 스택 그대로이고, 거기에 현재 스택의 최솟값을 조회하는 getMin이 추가된 자료구조를 직접 만드는 문제입니다. 모든 연산이 O(1)에 끝나야 한다는 점이 핵심 조건입니다.Stack과의 연관성이 문제는 stack의 성질(LIFO, 마지막에 넣은 것이 먼저 나온다)을 알고 있어야 풀립니다. 개념이 낯설다면 아래 글을 먼저 보고 오세요.👉 Stack 개념 정리이 문제에서 쓸 stack의 성질은 하나입니다. 위에 쌓인 원소를 꺼내면, 스택은 그 원소를 넣기 직전 상태로 정확히 돌아갑니다. 이 성질을 최솟값 관.. 2026. 10. 15. [Leetcode]3. Longest Substring Without Repeating Characters 슬라이딩 윈도우 개념이 낯설다면 슬라이딩 윈도우 이론 정리 글을 먼저 읽고 오면 좋다. 고정 크기 윈도우와 가변 크기 윈도우, 분할 상환(while이 중첩돼도 O(n)인 이유) 같은 이론은 그 글에 정리돼 있고, 이 글에서는 이 문제에 필요한 만큼만 짚는다.1. 문제문제: 3. Longest Substring Without Repeating Characters — https://leetcode.com/problems/longest-substring-without-repeating-characters/요약: 문자열 안에서 같은 글자가 두 번 나오지 않는 이어진 구간 중 가장 긴 것의 길이를 구한다. 글자를 띄엄띄엄 골라 만드는 게 아니라, 붙어 있는 구간이어야 한다.난이도: Medium유형: 해시 테이블 .. 2026. 10. 13. [Leetcode]238. Product of Array Except Self 📌 한 줄 요약 "나만 빼고 전부 곱하기"는 내 왼쪽 전부의 곱 × 내 오른쪽 전부의 곱이다. 누적합처럼 한 번 쌓아 두고 재사용하면 나눗셈 없이 O(n)에 끝난다.이 글에서 다루는 것전체 곱 ÷ 자기 자신이 왜 막혀 있는지, 0이 있으면 무엇이 깨지는지구간합·누적합 이론이 이 문제에서 왜 필요한지, 그리고 합과 곱이 갈리는 지점왼쪽 곱을 먼저 쌓고 오른쪽 곱은 변수 하나로 이어가며 공간까지 줄이는 과정Python · JavaScript · Java 코드 (알고리즘, 변수명, 주석 위치를 통일)흔한 실수를 실제로 돌려서 나온 오답 출력1. 문제문제: 238. Product of Array Except Self — https://leetcode.com/problems/product-of-array-exc.. 2026. 10. 8. 이전 1 2 3 4 ··· 50 다음 728x90