웹팩은 웹에서 사용되는 모든 자원(assets)을 번들링 해주는 도구이다. 즉, 번들링의 개념은 여러개의 파일 중에 종속성이 존재하는 파일을 하나의 파일로 묶어 패키징을 시키는 과정을 의미한다.정리하자면, Webpack은 한마디로 번들링과 컴파일을 결합하는 “정적 모듈
Next.js 프로젝트 셋팅중에 아래와 같이 npm run dev를 하였는데, 다음과 같은 에러가 발생하였다.해결방법을 찾던 도중 아주 간단하게 해결되는 방법이 있어서 공유합니다.CMD를 관리자 권한으로 실행합니다.CMD에 다음과 같이 입력합니다.그리고 다음과 같이 입
크래프톤 정글의 꽃인 나만의 무기만들기까지 무사히 마쳤다! 너무나 바쁜 여정으로 TIL를 Velog로 작성하지 못했다. 그래서 지금부터라도 꾸준히 작성해보려고 한다.앞으로 나만의 무기 만들기 동안 있었던 이야기들도 조금씩 풀어보고 싶다. 나만무 때 React Query
위상 정렬은 그래프 이론에서 사용되는 알고리즘으로, 각 노드들이 어떤 순서로 방문되어야 하는지를 결정하는 방법입니다. 이는 그래프에서 각 노드 간의 관계를 파악하고, 각 노드를 방문하는 순서를 결정할 때 사용됩니다.예를 들어, 일상적인 상황에서도 위상 정렬의 개념을 쉽
Dynamic Programming (DP)와 Depth-First Search (DFS)의 차이점은 무엇일까요? 문득 문제를 풀다보니, DP(동적프로그래밍)과 DFS(깊이우선탐색)이 뭐가 다른지 궁금해져서 조사해보면서 정리를 해보았다.우선 각자의 개념부터 먼저 알아보
이진 탐색 트리(Binary Search Tree)는 노드들이 부모 노드보다 작은 값을 가지는 왼쪽 서브트리와 부모 노드보다 큰 값을 가지는 오른쪽 서브트리로 이루어진 트리이다. 이진 탐색 트리에서 탐색, 삽입, 삭제 연산은 모두 O(log n)의 시간복잡도를 가진다.
스패닝 트리??? 알고리즘을 공부하면서 스패닝 트리라는 단어를 처음 들어본 것 같다. 그래서 조금 더 알아봐야 겠다는 생각을 하게 됬다.블로그: 최소 스패닝 트리(Minimum Spanning Tree)스패닝트리는 모든 정점을 포함하면서 사이클이 존재하지 않는 부분 그
DFS 와 BFS의 정의는 많이 들어보긴 했지만, 어떤 문제에 무엇이 사용되고 DFS와 BFS가 어떻게 사용하면 되는지 몰랐었다. 그래서 오늘은 그래프 알고리즘의 꽃인 DFS와 BFS를 공부해봤다.블로그 : DFS vs BFS (깊이우선탐색 vs 너비우선탐색)코딩 테스
오늘 그래프에 대해서 공부했다. 먼저 이진 트리의 탐색 방법에 대해서 공부했었는데, 재귀함수를 통해서 트리 순회에 대해서 알 수 있었다.블로그: 이진 트리 탐색 방법 (전위탐색/중위탐색/후위탐색)예전에 잠깐 컴공과 자료구조 수업을 들었을 때 한 번 배웠던 부분이라 이해
스패닝 트리(Spanning Tree)는 그래프에서 모든 정점을 포함하면서 사이클이 존재하지 않는 부분 그래프이다. 그래프 내에서 가장 작은 비용을 가지는 간선을 선택하고, 이어진 정점을 그래프에서 제외하여 생성된다. 스패닝 트리는 그래프 내에서 여러 개를 가질 수 있
그래프는 연결된 노드와 간선으로 이루어진 자료구조이다. 그래프는 다양한 분야에서 활용되며, 그래프를 탐색하는 알고리즘은 이러한 분야에서 중요한 역할을 한다.DFS는 깊이 우선 탐색 알고리즘으로, 스택이나 재귀 호출을 이용하여 구현할 수 있다. DFS는 시작 노드에서부터
컴퓨팅 사고로의 전환 3주차가 되었다. 이번 Week 3 의 알고리즘 주제는 이다.GitHub: WEEK03: 그래프(vertex, edge, node, arc), BFS, DFS, 위상정렬기업 코딩테스트를 종종 쳤었는데, 그 중에 가장 무서워하고 두려워 했던 것이 그
그래프(Graph)는 가장 널리 사용되는 자료구조 중 하나 이다. 그래프는 데이터 간의 관계를 나타내는데 사용되며, 복잡한 데이터를 직관적으로 이해할 수 있게 해준다.그래프는 보통 Node(노드)와 Edge(엣지)로 이루어져 있다. Node(노드)는 데이터의 지점을 나
useMemo는 컴포넌트 리렌더링 간에 계산 결과를 캐싱할 수 있는 Hook(훅)이다. 그래서 성능상의 이유로만 사용되며, useCallback, 디바운싱, 동시 렌더링 등과 같은 기술과 함께 사용해야 한다. 이 훅은 일부 상황에서는 굉장히 도움이 되지만, 대부분의 개
12일차에서 DP로 풀었던 문제를 이분탐색을 사용해서 시간복잡도를 O(n^2) 에서 O(nlogn)으로 줄어보았다.문제 : 가장 긴 증가하는 부분 수열GitHub: 가장 긴 증가하는 부분 수열 구현 (코드보기)그 전에는 DP를 사용하여 풀었지만, 지금 요구하는 답은 가
해시(Hash)는 데이터를 효율적으로 검색하기 위한 자료구조 중 하나입니다.해시는 데이터를 저장할 위치를 계산하는 데 사용하는 해시 함수와, 계산된 위치에 데이터를 저장하는 데 사용하는 배열로 이루어져 있습니다. 이렇게 함으로써 데이터를 빠르게 검색할 수 있습니다.해시
머지 정렬은 위 내용을 보면 쉽게 이해할 수 있을 것 같다.말 그대로 배열을 그룹화 하면서 모두 하나로 쪼갠 다음에 그룹별로 값을 비교하면서 하나의 배열로 합치면서 정렬이 진행되는 방식이다.위 그림의 과정 전체는 아래와 같다.그래서 합병 정렬의 시간 복잡도는 n개의 데
위 그림을 보면 좀 더 쉽게 이해할 수 있을 것 같다.퀵 정렬은 Pivot 이라는 선정된 기준값에서 작으면 왼쪽으로 모으고, 크면 오른쪽으로 모아서 Pivot을 기준으로 정렬을 시키는 방법이다. 그래서 1회 작업이 끝나면, Pivot의 위치는 고정이 된다.그래서 퀵 정
GitHub: javascript 코드Heap Sort는 최대 힙 트리나 최소 힙 트리를 구성해 정렬을 하는 방법입니다. 내림차순 정렬을 위해서는 최소 힙을 구성하고 오름차순 정렬을 위해서는 최대 힙을 구성하면 됩니다. 만약 내림차순 정렬을 위한 최대 힙을 구현하려면