본문 바로가기

분류 전체보기97

아틸러리 그래프 부연설명 errors.EADDRINUSE: 로컬에서 로컬로 요청을 넣는 상황에서, 로컬이 사용할 수 있는 포트 개수가 모두 찼을 때 값이 나온다.(서버가 죽은 상태는 아) 포트가 같은 (내가 내 컴퓨터에 요청을 보내는 경우와 같은) 경우 제대로 측정하기 어렵다. 따라서 가용 포트번호가 없을 때 파란색 막대 그래프가 생기는 것이라고 볼 수 있겠다! 데드락이 걸리는 이유 1초에 10개를 처리할 수 있는 상황에 20개씩 요청이 들어온다면, 10개는 처리되지만 10개는 쌓이는 상황이온다. 10초 후, 더 이상 요청을 받지 않는다고 해도 쌓인 100개의 요청을 처리하느라 10초가 더 필요한 상황인데 이렇게 기존 요청도 처리하면서 새 요청까지 받아야 하는 상황이 오면 데드락에 걸린다. 서버 입장에서 이것을 방지하기 위해 타.. 2024. 3. 1.
[그리디 알고리즘] 백준 11047, 백준 1541 그리디 알고리즘이란 현재 상태에서 보는 선택지 중 최선의 선택지가 전체 선택지 중 최선의 선택지라고 가정하는 알고리즘이다. 수행 과정 1. 해 선택 : 최선의 선택지를 해로 선택한다. 2. 적절성 검사 : 전체 문제의 제약 조건에 벗어나지 않는지 검사한다. 3. 1~2 반복 백준 11047에서 그리디를 적용하기 위해 살펴보면, 최대한 큰 금액의 동전으로 구성하는 것이 최선의 선택지임을 알 수 있다. public class 동전개수의_최솟값_구하기 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int a[] = new int[n]; .. 2024. 2. 29.
[너비 우선 탐색 BFS] 백준 2178 [너비 우선 탐색 BFS] 도 그래프를 완전 탐색하는 방법 중 하나로 시작 노드에서 출발해 시작노드를 기준으로 가까운 노드를 먼저 방문하면서 탐색하는 알고리즘(FIFO) 입니다. 선입선출 방식으로 탐색하므로 큐를 이용해 구현합니다. 너비 우선 탐색의 핵심 이론 1.BFS를 시작할 노드를 정한 후 사용할 자료구조 초기화 하기 (DFS와 동일하지만 스택대신 큐를 사용한다는 점에서 다름) 2. 큐에서 노드를 꺼낸 후 꺼낸 노드의 인접 노드를 다시 큐에 삽입하기 3. 큐 자료구조에 값이 없을 때 까지 반복 백준 2178 미로 찾기 문제에 적용해보기 public class 미로탐색 { static int[] dx = {0,1,0,-1}; static int[] dy = {1,0,-1,0}; //각각 위, 오른쪽,.. 2024. 2. 28.
[이진 탐색] 백준 1920 이진 탐색은 데이터가 정렬돼 있는 상태에서 원하는 값을 찾아내는 알고리즘으로 시간 복잡도는 nlogn이다. 대상 데이터의 중앙값과 찾고자 하는 값을 비교해 데이터 크기를 절반씩 줄이면서 대상을 찾는다. 탐색 방법 1. 데이터에서 중앙값(median)을 선택한다. 2. 중앙값>타깃 데이터 라면, 중앙값을 기준으로 왼쪽 데이터셋을 선택한다. 3. 반대인 경우라면 오른쪽 데이터셋을 선택한다. 4. 1~3을 반복하면서 중앙값 == 타깃 데이터를 찾는다. 더보기 내가 찾고자 하는 데이터 = 55 3 7 13 15 23 35 38 41 46 49 55 57 68 72 77 68 -> 오름차순으로 배열 되어있는 상태, 중앙값을 41로 설정 41과 55 비교 -> 55가 더 크므로 오른쪽 데이터 셋 선택 46 49 5.. 2024. 2. 28.