그리디 알고리즘은 현재 상태에서 볼 수 있는 선택지 중에 최선의 선택을 하는 알고리즘이다. 그리디 알고리즘은 동적 계획법보다 구현하기 쉽고 시간 복잡도가 우수하다. 하지만 항상 최적의 해를 보장하지 못한다는 단점이 있다.
너비 우선 탐색 (BFS) 너비 우선 탐색(BFS, breadth-first search)은 그래프를 완전 탐색하는 방법 중 하나로, 시작 노드에서 출발해 시작 노드를 기준을 가까운 노드를 먼저 방문하면서 탐색하는 알고리즘이다.
깊이 우선 탐색은 그래프 완전 탐색 기법 중 하나이다.그래프의 시작 노드에서 출발하여 탐색할 한쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 수행하는 알고리즘이다.
C++에서 멀티 스레드 프로그래밍을 하다 보면 한 스레드가 특정 이벤트나, 특정 조건이 true가 될 때까지 기다리길 원하는 상황이 흔하게 발생한다.그런 상황을 어떻게 구현하는지에 대해 알아본다.
C++ 표준에서 사용되는 세 가지 락 관리 객체(std::lock_guard / std::unique_lock / std::shared_lock)에 대해 살펴보고 언제 무엇을 써야 하는지 학습한다.
https://github.com/psb9812/AlgorithmSolve/tree/main/AlgorithmSolve/AlgorithmSolve/%EB%B6%84%ED%95%A0%20%EC%A0%95%EB%B3%B5\_%ED%96%89%EB%A0%AC
최근에는 네트워크 소켓 프로그래밍을 공부하고 있습니다. 소켓 프로그래밍을 하다보니 백로그 큐에 대해서 알게 되었고 이 부분에 대해 기록하고자 합니다. 소켓 프로그래밍 지식이 어느정도 있어야 이해하실 수 있습니다. 백로그 큐(backlog queue) backlog
TCP(Transmission Control Protocol)는 신뢰성 있는 데이터 전송을 위한 프로토콜로, 데이터를 패킷 단위로 나누어 전송하고, 수신 측에서 패킷의 손실이나 손상 여부를 확인하고 복구하는 기능을 제공합니다. 이를 위해 TCP는 ACK(Acknowle
삽입 정렬은 특수한 경우에 매우 빠르게 동작하는 정렬 알고리즘 입니다.우선 핵심 논리는 다음과 같습니다.정렬이 된 영역과 정렬이 되지 않은 영역을 나눠서 정렬이 되지 않은 영역에서 정렬이 된 영역으로 하나씩 이동 시킨다.i가 1에서 시작하는데 이는 맨 앞의 인덱스 0을