전체 글 99

[알고리즘] 그래프 (다익스트라 알고리즘, 벨만-포드 알고리즘)

그래프노드와 간선을 이용한 비선형 데이터 구조`노드`: 데이터`간선`: 노드 간의 관계나 흐름`가중치`: 관계나 흐름에서 정도 표현 그래프 종류`방향 그래프`: 방향이 있는 간선을 포함한 그래프`무방향 그래프`: 방향이 없는 간선을 포함한 그래프`가중치 그래프`: 가중치가 있는 그래프`순환 그래프`: 특정 노드에서 시작해 간선을 따라 다시 돌아오는 경로가 있는 순환이 존재하는 그래프`비순환 그래프`: 순환이 존재하지 않는 그래프 그래프 구현(1) 인접 행렬 활용int graph[][] = new int[][]{{0, 400},{0, 0}};희소 그래프 (노드 수에 비해 간선 수가 매우 적은 그래프) 효현하는 경우 비효율노드들의 값의 차이가 매우 큰 그래프 표현하는 경우 비효율간선 정보 확인 시 시간 ..

Algorithm/Concept 2025.11.25

[DB/Oracle] 오라클 데이터베이스 + SQL Developer 설치 (MacBook Air M3)

01. 오라클 데이터베이스 설치하고 계정 설정하기(1) MacBook Air M3 도커에 Oracle 설치참고: https://velog.io/@daram_dev/Mac-오라클-21c-설치하기 Mac 오라클 21c 설치하기노트북을 바꾸면서 맥 환경도 경험해보고 싶어 맥북 에어 M3를 구매했습니다^^하지만 오라클에서 맥을 지원하지 않는다는 점...도커를 이용해서 오라클을 설치해야되는 데아뿔사! image를 pull 땡velog.io설치# 0. docker 설치# 1. colima 설치gaeun@iga-eun-ui-MacBookAir ~ % brew install colima# 2. colima 실행gaeun@iga-eun-ui-MacBookAir ~ % colima start --memory 4 --arc..

DB 2025.11.24

[알고리즘] 트리

01. 개념노드(node): 트리를 구성하는 요소루트 노드: 노드 중 가장 위에 있는 노드부모 노드: 상대적으로 위에 있는 노드자식 노드: 상대적으로 아래에 있는 노드형제 노드: 같은 부모 노드를 갖는 노드리프 노드: 자식이 없는 리프 노드간선(edge): 노드와 노드 사이를 이어주는 선차수(degree): 특정 노드에서 아래로 향하는 간선의 개수 표현배열이나 포인터로 구현 가능(1) 배열로 표현하기배열 = 선형 자료구조, 트리 = 계층 자료구조자식이 없거나 쓰지 않는 인덱스들은 모두 빈 값이므로 메모리가 낭비배열로 트리를 표현하기 위한 3가지 규칙루트 노드는 배열 인덱스 1번에 저장왼쪽 자식 노드의 배열 인덱스는 부모 노드의 배열 인덱스 * 2오른쪽 자식 노드의 배열 인덱스는 부모 노드의 배열 인덱스 ..

Algorithm/Concept 2025.11.24

[Algorithm/프로그래머스] Lv.3 양과 늑대.java (백트래킹)

https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 노드 정의각 노드의 자식을 관리하기 위해 `Node` 클래스를 정의하였다. `id`는 노드 번호이고, `value`는 양(0)과 늑대(1)를 나타내며, `childList`에 자식 노드를 담는다.static class Node { int id; int value; List childList; Node(int id, int value) { this.id = id; this.value = value; ..

[알고리즘] 해시 (Java)

01 . 개념해시는 해시 함수를 사용해서 변환한 값을 인덱스로 삼아 키와 값을 저장해서 빠른 데이터 탐색을 제공하는 자료 구조이다. 해시는 키를 활용해 데이터 탐색을 빠르게 한다.특징단방향 동작: 키 통해 값 찾기만 가능시간 복잡도 O(1): 해시함수 덕분에 탐색 과정 필요 X해시 함수를 활용해서 특정 값이 있는 위치를 바로 찾기 가능해시 테이블: 키와 대응한 값이 저장되어 있는 공간버킷: 해시 테이블의 각 데이터값을 인덱스로 활용하려면 변환과정 필요활용 분야비밀번호 관리데이터베이스 인덱싱블록체인 02. 해시 함수자바에서는 해시셋 혹은 해시맵이라는 표준 API를 제공해시 함수 구현시 고려사항해시 함수가 변환한 값은 인덱스로 활용해야 하므로 해시 테이블의 크기를 넘으면 안 된다.해시 함수가 변환한 값의..

Algorithm/Concept 2025.11.09

[Algorithm/BOJ] 1697 : 숨바꼭질.py

문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오.입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다.출력수빈이가 동생을 찾는 가장 빠른 시간을 출력한다.예제 입력 / 출력5 17 4힌트수빈이가 5 → 10 → 9 → 18 → 17 순..

[Algorithm/프로그래머스] Lv.2 타겟넘버.py

문제n개의 음이 아닌 정수들이 있습니다.이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다.예를 들어, [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 가지 방법이 있습니다.-1 + 1 + 1 + 1 + 1 = 3+1 - 1 + 1 + 1 + 1 = 3+1 + 1 - 1 + 1 + 1 = 3+1 + 1 + 1 - 1 + 1 = 3+1 + 1 + 1 + 1 - 1 = 3사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때,숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성하세요. 제한사항숫자의 개수: 2개 이상 20개 이하각 숫자: 1 이상 50 이하 자연수타겟 넘버..

[네트워크] 캐시와 조건부 요청 HTTP 헤더

캐시 기본 동작캐시가 없을 때[요청1]GET /star.jpg[응답1]HTTP/1.1 200 OKContent-Type: image/jpegContent-Length: 34012aklcmnaoi123rtnjcv79324jnbpqiejm23589cmnasoic9anlkjfoiqmmmsdjhfguyjhow93jmlkcv3HTTP 헤더 0.1MHTTP 바디 1.0M=> 1.1M 전송[요청2]GET /star.jpg[응답2]HTTP/1.1 200 OKContent-Type: image/jpegContent-Length: 34012aklcmnaoi123rtnjcv79324jnbpqiejm23589cmnasoic9anlkjfoiqmmmsdjhfguyjhow93jmlkcv3HTTP 헤더 0.1MHTTP 바디 1.0M..

CS/네트워크 2025.09.06

[네트워크] HTTP 일반 헤더 (+ 인증, 쿠키)

HTTP 헤더 기본 구조header-field = field-name ":" OWS field-value OWSfield-name: 헤더 이름 (대소문자 구분이 없다)ex. Host, Content-Typefield-value: 헤더 값 (문자열, 숫자, 기타 정보)OWS (Optional White Space): 공백 허용 (콜론 뒤에 스페이스 있어도 되고 없어도 된다.)[요청]GET /search?q=hello&hl=ko HTTP/1.1Host: www.google.com 👈 HTTP 헤더[응답]HTTP/1.1 200 OKContent-Type: text/html;charset=UTF-8 👈 HTTP 헤더Content-Length: 3423 👈 HTTP 헤더 ... HTTP 헤더 용도HTTP ..

CS/네트워크 2025.09.06