>
[알고리즘] 가지는 치지만 분할은 어려운 사람.
·
JavaScript/알고리즘
moo게임을 풀어보자 이문제는 재귀다. const input = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : "./input.txt") .toString() .trim();const N = Number(input);function makeMoo(n) { if (n === 1) return "moo"; const prev = makeMoo(n - 1); return prev + "m" + "o".repeat(n + 2) + prev;}const str = makeMoo(N);console.log(str[N]); 재귀를 위풍당당 야무지게 돌렸지만 🚨 하지만 재귀에는 함정이 있어요!문제는... S(n)의 길이가..
[알고리즘] 가지를 치지 않는다면, 시간은 당신을 칠 것입니다.
·
JavaScript/알고리즘
일단 문제 링크입니다.https://www.acmicpc.net/problem/28075필자는 "시간 초과" 라는 글자를 보면 손이 떨립니다.내가 어떻게 풀었는데... 한 줄 한 줄 코드를 써 내려가며 스스로에게 말하죠.“괜찮아. 현대 컴퓨터는 빠르니까.”그렇게 자신을 속이며 제출 버튼을 누른 그 순간—[시간 초과]…잠시 정적이 흐르고,시간초과는 저에게 말을겁니다.“너 진짜 탐색 다 돌릴 생각이었어?” 💥 완전탐색은 당신을 배려하지 않는다.문제의 조건은 이랬습니다:총 N일 동안 일을 합니다.매일 2개의 업무(task) 중 하나를 선택하고, 그 업무는 3개의 장소(place) 중 하나에서 수행됩니다.같은 장소에서 연속으로 일하면 점수가 절반이 됩니다.M점 이상을 달성하는 모든 가능한 경우의 수를 구해야 ..
JavaScript Array 메서드 정복 하기
·
JavaScript
javascript로 코딩테스트를 준비하려는데 Array를 모르면 절대절대 안됩니다.알고리즘 문제를 풀 때 정말 유용하게 사용되는 배열(Array) 메서드들을 총정리하는 시간을 가져보겠습니다.배열 메서드를 잘 활용하면 코드를 훨씬 간결하고 효율적으로 작성할 수 있으며, 문제 해결 능력도 크게 향상될 수 있습니다. 배열메서드를 다루면서 가장 중요한 포인트중 하나는 원본배열에 영향을 미치냐 안미치냐입니다.1. 배열 순회 및 탐색 메서드배열의 각 요소를 순회하거나 특정 조건을 만족하는 요소를 찾는 메서드들입니다.1.1 forEach()배열의 각 요소에 대해 주어진 함수를 실행합니다.반환값: undefined주의: 원본 배열을 변경하지는 않지만, 콜백 함수 내에서 원본 배열을 변경하는 작업은 가능합니다. map..
🛡️ 자바스크립트 Proxy: 내 객체를 위한 똑똑한 문지기
·
JavaScript
이전 포스팅에서는 Object.freeze()를 사용하여 객체의 불변성을 확보하는 방법에 대해 다루었습니다.2025.04.15 - [JavaScript] - 🔒 Object.freeze()로 안전하게 상태를 보호하는 법 — 불변성(immutability)의 모든 것 🔒 Object.freeze()로 안전하게 상태를 보호하는 법 — 불변성(immutability)의 모든 것안녕하세요! 복잡한 웹 애플리케이션을 만들다 보면 '상태 관리'라는 거대한 벽에 부딪히곤 합니다. 데이터가 어디서 어떻게 변하는지 추적하기 어렵고, 예상치 못한 버그 때문에 고생한 경험,cwnsgh.tistory.com freeze는 객체 상태 변경을 원천적으로 차단하여 데이터의 안정성을 높이는 효과적인 방법입니다. 하지만 개발 요구..
🔒 Object.freeze()로 안전하게 상태를 보호하는 법 — 불변성(immutability)의 모든 것
·
JavaScript
안녕하세요! 복잡한 웹 애플리케이션을 만들다 보면 '상태 관리'라는 거대한 벽에 부딪히곤 합니다. 데이터가 어디서 어떻게 변하는지 추적하기 어렵고, 예상치 못한 버그 때문에 고생한 경험, 다들 한 번쯤 있으시죠? 오늘은 핵심적인 개념인 불변성(Immutability)과, 이를 자바스크립트에서 쉽게 구현하도록 도와주는 Object.freeze()에 대해 알아보겠습니다. 🤔 데이터가 마음대로 바뀌면 왜 위험할까요? (양방향 데이터 바인딩의 함정)과거 또는 일부 프레임워크에서 사용되던 양방향 데이터 바인딩은 화면과 데이터가 서로를 직접 수정할 수 있어 편리해 보였습니다. 하지만 앱이 복잡해지면 데이터 변경의 원인을 찾기 어려워지고, 이는 예기치 못한 버그와 디버깅 지옥으로 이어지기 쉽습니다. 그래서 "상당히..