📚 CS/Algorithm 3

[Algorithm] 백트래킹 (Backtracking)

백트래킹을 처음 접했을 때는 단순히 모든 경우의 수를 탐색하는 깊이 우선 탐색(DFS)이라고 생각했지만, 학습을 통해 백트래킹의 진정한 힘은 '가지치기(Pruning)'에 있다는 것을 깨달았습니다. 하나의 패턴을 이해하고 나니 N-Queens나 스도쿠 같은 완전히 다른 문제들도 동일한 접근법으로 해결할 수 있다는 것을 알게 되어 응용할 수 있겠다는 자신감도 생겼고 앞으로는 어떤 조건을 '유망하다'고 판단하고 효율적으로 가지치기를 할 것인지 고민하는 것이 관건이 될 것 같습니다. 백트래킹 (Backtracking)백트래킹은 가능한 모든 경우의 수를 탐색하는 알고리즘입니다. 하지만 무작정 모든 경우의 수를 다 보는 부르트 포스(Brute Force)와는 달리, 조건에 맞지 않는 경로는 더 이상 탐색하지 않고..

📚 CS/Algorithm 2025.10.10

[algorithm] Set, Map 함수 알아보기

기본적인 메서드이지만 코딩테스트를 공부하다보면 각각의 함수명이 제대로 생각나지 않아 꼭 구글링해보기 마련인데, 이 기회에 제대로 정리해보게 되어 좋았습니다. 앞으로 Set, Map 함수를 더 효율적으로 사용해 시간복잡도의 장점을 살려서 문제를 풀어보려고 합니다.자바스크립트로 코딩테스트를 풀다 보면 꼭 마주하는 개념인데, 알고리즘에 집중하다 헷갈리는 경우가 많아 글로 정리해보려고 합니다.1. Set: 중복 없는 값들의 집합자바스크립트의 Set은 중복을 허용하지 않는 유일한 값들의 집합입니다. 배열과 비슷하지만 중복을 자동으로 제거해 준다는 점에서 차이가 있습니다. Set은 주로 고유한 값들을 저장하거나 배열에서 중복을 제거할 때 유용하게 사용됩니다.Set의 주요 메서드new Set(): 비어 있는 Set을..

📚 CS/Algorithm 2025.09.26

[Algorithm] 깊이 우선 탐색 (DFS) vs 너비 우선 탐색 (BFS)

BFS와 DFS의 개념을 정리하며 두 알고리즘의 본질적인 차이를 명확이 이해할 수 있어 좋았습니다. 알고리즘 공부를 하다 보면 정말 많이 나오는 유형인데 단순히 개념을 암기하는 것을 넘어서 큐와 스택이라는 자료구조가 어떻게 너비 우선 탐색, 깊이 우선 탐색이라는 상반된 방식을 만들어내는지 원리적으로 공부할 수 있어 좋았습니다.기존에는 BFS와 DFS 중에 선택해서 풀 수 있는 문제가 많아 큰 기준을 두지 않고 편한 알고리즘을 위주로 구현했었는데, BFS가 최단 경로를 보장하는 대신 메모리 사용량이 크고 DFS는 메모리 효율을 보장하는 대신 최단 경로가 아니라는 명확한 트레이드오프 관걔를 파악한 후 상황에 맞는 알고리즘을 선택하는 기준이 생겼습니다. 공부한 내용을 바탕으로 앞으로는 이를 응용한 더 복잡한 ..

📚 CS/Algorithm 2025.09.22