[바미] Tree algorithms - Trie trees 구현하기.
·
하루 알고리즘(JS)
Trie tree? Trie tree는 문자열 검색을 효율적으로 수행하기 위한 트리 자료구조입니다. 이진 트리와는 달리 한 노드당 여러 개의 자식 노드를 가지며, 각 자식 노드는 해당 위치에 올 수 있는 문자를 나타내는 것이 특징이죠. 코드 구현 class TrieNode { constructor() { this.children = {}; this.isEndOfWord = false; } } class Trie { constructor() { this.root = new TrieNode(); } insert(word) { let current = this.root; for (let i = 0; i < word.length; i++) { let ch = word.charAt(i); let node = cu..
[바미] Dynamic programming - LIS 알고리즘 구현하기
·
하루 알고리즘(JS)
LIS알고리즘? Longest Increasing Subsequence (LIS) 알고리즘은 어떤 수열에서 가장 긴 증가하는 부분 수열을 찾는 알고리즘을 말하는데요. 예를 들어, 수열 [3, 1, 5, 2, 4, 9]에서 LIS는 [1, 2, 4, 9]이 되죠. LIS 알고리즘은 동적 프로그래밍 기법을 사용하여 해결할 수 있는데 문제를 해결하기 위해 각 요소에 대한 최장 증가 수열의 길이를 계산하고, 최종적으로 이들 중 최대 값을 찾아주죠. 먼저 Bottom-up 방식으로 LIS 알고리즘을 구현해 보겠습니다. 이 방식에서는 DP table을 채우기 위해 이전 값들을 사용하는 방식으로 구현됩니다. Bottom-up 방식 코드 구현 function longestIncreasingSubsequence(nums..
[바미] 갤럭시 Z 폴드 5 및 갤럭시 Z 플립 5 긱벤치 발견, 램 용량 확인
·
IT 관련 정보
곧 출시될 갤럭시 Z 폴드 5와 갤럭시 Z 플립 5의 미국 모델이 긱벤치 목록에 등장했으며 마침내 두 모델 모두 갤럭시 전용 퀄컴 Snapdragon 8 Gen 2 칩셋을 사용할 것이라고 확인했습니다. 이 칩셋은 갤럭시 S23 시리즈에 탑재된 것과 동일한 SoC이며 일반 SD 8 Gen 2 칩셋에 비해 약간 오버클럭된 CPU 및 GPU 코어를 제공합니다. 삼성 갤럭시 Z 폴드 5(SM-F946U)는 싱글 코어 테스트에서 2,030점, 멀티 코어에서 5,213점을 기록했습니다. 이 점수는 각각 1,500점과 4,900점대를 기록한 갤럭시 S23 시리즈 휴대폰보다 약간 높은 점수입니다. 테스트에 사용된 Z 폴드 5는 12GB RAM을 탑재하고 Android 13을 실행합니다. Samsung Galaxy Z ..
[바미] Tree algorithms - AVL trees 알고리즘.
·
하루 알고리즘(JS)
AVL trees AVL 트리는 균형 이진 탐색 트리의 일종으로, 모든 노드의 왼쪽 서브트리와 오른쪽 서브트리의 높이 차이가 1 이하인 트리를 말합니다. AVL 트리에서 각 노드의 높이 차이를 재조정하는 연산을 회전(rotation)이라고 하죠. 그래서 AVL 트리에서 균형을 유지하기 위해 각 노드의 두 자식 서브트리의 높이 차이(높이 균형 인수)는 -1, 0, 1 중 하나여야 하는데 만약 높이 균형 인수가 이 범위를 벗어난다면 해당 노드를 불균형 상태로 판단하여 회전 연산을 수행해 균형을 유지하게 되죠. 코드 구현 AVL 트리의 구현을 위해 다음과 같은 노드 구조체가 필요한데요. class AVLNode { constructor(value) { this.value = value; this.left = ..
[바미] 개발자용 노트북 추천해봅니다. (Ver 2023)
·
IT 관련 정보
노트북 구매에 관련한 꿀팁을 얻고 싶으시다면 아래 링크를 참고하세요! [바미] 노트북 구매 시 꿀팁.안녕하세요. 제 블로그 유입 중에 노트북 관련된 글의 유입이 많아 노트북을 구매하실 때 좋은 팁을 공유하고자 합니다. 해당 글은 개발용 노트북이 아닌 노트북 고를 때 유의할 점임을 먼저 알codesk.tistory.com작년에는 어떤 노트북을 추천했을까요? [바미] 개발자용 노트북 추천해봅니다. (Ver 2022)노트북 구매에 관련한 꿀팁을 얻고 싶으시다면 아래 링크를 참고하세요! [바미] 노트북 구매 시 꿀팁. 안녕하세요. 제 블로그 유입 중에 노트북 관련된 글의 유입이 많아 노트북을 구매하실 때codesk.tistory.com안녕하세요. 정말 오랜만에 2023년도 개발자용 노트북 추천글을 써봅니다. 2..
[바미] Graph algorithm - 최소 신장 트리(Minimum Spanning Tree, MST) 구현하기
·
하루 알고리즘(JS)
최소 신장 트리? 최소 신장 트리(Minimum Spanning Tree, MST)는 가중치 그래프에서 모든 노드를 포함하면서, 간선의 가중치 합이 최소인 트리를 의미하는데요. 이를 구하는 알고리즘으로는 Prim's Algorithm과 Kruskal's Algorithm이 있습니다. Prim's Algorithm Prim's Algorithm은 시작 정점에서부터 출발하여 신장 트리 집합을 확장해 나가는 방법입니다. Kruskal's Algorithm Kruskal's Algorithm은 간선들을 가중치 순으로 정렬한 후에 사이클을 형성하지 않는 선에서 차례대로 선택하는 방법입니다. 이제 Prim's Algorithm과 Kruskal's Algorithm을 구현해 볼까요? Prim's Algorithm 구..
[바미] Graph algorithm - Dijkstra의 최단 경로 알고리즘 구현하기.
·
하루 알고리즘(JS)
Dijkstra의 최단 경로 알고리즘? Dijkstra의 최단 경로 알고리즘은 그래프에서 출발점에서부터 다른 모든 정점까지의 최단 경로를 찾는 알고리즘인데요. 이 알고리즘은 음의 가중치를 가진 간선을 허용하지 않아요. 음의 가중치 음의 가중치(negative weight)는 그래프에서 간선의 가중치가 음수인 경우를 말하는데 일반적으로 Dijkstra의 최단 경로 알고리즘은 음의 가중치가 없는 그래프에서 사용되고 있어요. 그 이유는 음의 가중치가 있는 경우에 최단 경로를 찾는 문제에서 최적해가 아닐 수 있기 때문이죠. 음의 가중치가 있는 그래프에서 시작 노드와 도착 노드 사이의 최단 경로를 찾는 문제를 생각할 때 만약 음의 가중치가 있는 경로가 최단 경로가 되는 경우, Dijkstra 알고리즘은 최단 경로..
[바미] Web application with EC2
·
DevOps/AWS
실습 링크 Web application with EC2 본 실습을 통해, AWS 의 가장 기본이 되는 컴퓨팅 서비스인 EC2 를 이용한 웹 어플리케이션을 만들어 보실 수 있습니다. scb8738.notion.site
[바미] Web application with Serverless
·
DevOps/AWS
실습링크
Bami
기록하며 성장하기