분류 전체보기(153)
-
[BOJ] 2075 MinHeap구현에 있어서 0-based, 1-based의 메모리 차이? #readline #split #streaming #RSS #javascript
“메모리 초과의 주범은 힙 인덱싱이 아니라 입력 파싱이었다. split은 줄마다 토큰 개수만큼 문자열과 배열을 새로 만들며, 대입력에서 RSS가 선형 증가한다. 반면 streaming 파서는 중간 객체를 만들지 않고 숫자 토큰을 즉시 힙에 반영해, 메모리 상한을 O(N)으로 고정한다. 같은 streaming 조건에서도 1-based 힙이 더 낮은 RSS를 보였는데, 이는인덱스 산술/경계 단순화가 런타임 최적화에 유리하게 작용했기 때문으로 보인다(환경 의존 가능). 결론적으로, 대용량 입력에서는 streaming + 상위 N 유지 + 스킵 최적화 + 1-based가 가장 안정적이었다.” 이번에 백준 2075 버전을 풀면서 의외의 난제를 마주쳤습니다. minHeap 구현시 0-based는 메모리 초과가 발..
2025.09.09 -
[BOJ/11723] Node.js로는 왜 메모리 초과가 날까? #비트마스크 #GC #입출력최적화
#알고리즘 #백준 #Nodejs #11723번 #메모리초과 #Node불가 #타입스크립트불가https://www.acmicpc.net/problem/11723 ✅ 문제 설명백준 11723번 집합 문제는 비트마스크를 활용해 집합 연산을 처리하는 구현 문제입니다.명령의 수는 최대 3,000,000개이고, 메모리 제한은 4MB로 상당히 타이트한 편입니다. ✅ 해결 방법비트마스크로 1~20까지의 숫자를 20비트로 표현Set을 사용하지 않고 비트 연산만으로 add/remove/check/toggle 구현출력은 `process.stdout.write` 또는 출력 배열에 모아놓고 마지막에 출력 ✅ 발생한 문제와 방안 TypeScript(Node.js)에서 입력만 받아도 readline이 모든 줄을 이벤트 큐에 쌓으면서..
2025.08.04 -
[BOJ / 14940] BFS 최단거리, 근데 벽도 있고 못 가는 길도 있다?! #BFS #최단거리 #구현
#알고리즘 #백준 #BFShttps://www.acmicpc.net/problem/14940📌 목차✅ 문제 설명✅ 해결 방법✅ 발생한 문제와 개선 포인트✅ 최적화 방안✅ TIL✅ 문제 설명출발점이 단 하나 있는 격자 맵에서, 모든 1(이동 가능한 땅)에 대해 최단 거리를 구하는 문제이다.도달할 수 없는 칸은 -1, 벽(0)은 그대로 0으로 출력해야 한다.✅ 해결 방법- 출발점(2)을 찾아서 BFS 시작- BFS 돌리며 도달 가능한 칸(1)은 이전 거리 +1로 저장- 방문 여부와 거리 구분을 위해 visited를 -1로 초기화- 벽(0)은 처음부터 visited[i][j] = 0으로 처리✅ 발생한 문제와 개선 포인트- 구조 분해 순서 문제: 출발점을 구조분해하기 전에 배열에 값이 없어서 undefined..
2025.07.31 -
[BOJ / 15989] DFS로 느렸다면? 중복 없는 조합은 DP로 최적화하자! #DP #조합 #중복제거
#알고리즘 #DP #DFS #조합 #중복없는조합 #백준 https://www.acmicpc.net/problem/15989✅ 목차오늘의 TIL 키워드DFS로 중복 조합 제거 시도DP 방식으로 전환한 이유조합 DP 핵심 코드 및 설명그래서 오늘의 TIL(Today I Learned) 학습 키워드✨ 중복 없는 조합을 만들 땐 오름차순만 유지하면 된다✨ DFS보다 DP가 더 빠르고, 누적 조합을 정확히 표현할 수 있다✅ DFS로 중복 조합 제거 시도처음엔 단순 DFS로 1, 2, 3의 합으로 N을 만들되, 중복 조합은 제거하려 했다.Set을 사용해서 [1,2]와 [2,1]처럼 값이 같은 배열을 JSON.stringify로 문자열화 후 중복 제거했다.하지만 성능이 나쁘고, DFS 스택마다 배열을 복사해야 해서 ..
2025.07.30 -
[BOJ / 부분 수열의 합] 백트래킹 느렸다면? 비트마스크로 순회하자 #비트마스크 #부분수열
#알고리즘 #비트마스크 #부분수열 💡 비트마스크로 부분 수열을 순회해보기✅ 문제 설명부분 수열 중, 합이 S가 되는 경우의 수를 구하는 문제입니다. 단, 부분 수열은 **크기가 양수(1개 이상)** 이어야 합니다.✅ 해결 방법기존에는 DFS 백트래킹으로 부분 수열을 구해왔습니다. 하지만 오늘은 새로운 방식인 비트마스크를 활용해 봅니다! 비트마스크는 각 원소를 "선택할지 말지"를 이진수로 표현하는 방식입니다. 예를 들어, 수열이 [7, 3, 5]라면: 비트값 이진수 선택된 원소 1 001 [5] 2 010 [3] 5 101 [7, 5]..
2025.07.29 -
[MFE] Solid.js + Next.js + React 연결?! iframe으로 시작하는 마이크로 프론트엔드 도전기 #MicroFrontend
#MicroFrontend #SolidJS #NextJS #React #iframe통합 #디자인시스템✅ 목차 1. 오늘의 TIL 키워드 2. 문제 설명 3. 해결 방법 4. 발생한 문제와 방안 5. 최종적인 해결 방법 6. 최적화 방안💡 그래서 오늘의 TIL(Today I Learned) 학습 키워드✨ iframe도 Micro FE의 한 방법이다✨ 기술스택이 달라도 아키텍처로 연결할 수 있다✨ TanStack Router의 Outlet은 iframe과 궁합이 좋다✅ 문제 설명Solid.js+Emotion로 만든 포트폴리오, Next.js 기반 DB/관리자 페이지, React+Shadcn기반 LCAP 디자인시스템 라이브러리까지...모두 따로 돌아가는데, 이걸 어떻게 하나의 시스템으로 묶지? 라..
2025.06.30