개발자 노트 - 강경훈 story
close
프로필 배경
프로필 로고

개발자 노트 - 강경훈 story

  • 분류 전체보기 (582)
    • 설치메뉴얼 (9)
    • Java (273)
      • Java 기초 문법 (24)
      • Java 객체 지향 핵심 (30)
      • Java 유용한 클래스 (51)
      • 자료구조 (20)
      • JSP (28)
      • Swing 프로젝트 (19)
      • 교재 정리 (12)
      • 디자인 패턴 (11)
      • 자바 라이브러리 (6)
      • 알고리즘(코테) (67)
    • Spring Boot (92)
      • Bank App 만들기 (deployment) (30)
      • 추가 개념 (7)
      • Blog 프로젝트 만들기(JPA) (53)
    • My Project (29)
      • 쇼핑몰 (15)
      • Java Swing 멀티 쓰레딩 프로그램 (10)
      • Java 1 : N 양방향 소켓 통신 (스윙) (4)
    • 면접 질의 응답 모음 (5)
    • CS (28)
      • 컴퓨터 구조 (7)
      • 운영체제 (6)
      • 네트워크 (8)
      • 시스템 설계 (7)
    • Vue.js (1)
      • 사전지식 (1)
    • MySQL (47)
      • 정리 (33)
      • 1일 1쿼리 (14)
    • HTML CSS (30)
      • HTML (10)
      • CSS (8)
      • CSS flexbox (9)
      • 블로그 만들기 (3)
    • JS (23)
      • JavaScript 핵심 (6)
      • JS 작업을 위한 코딩 연습 (8)
      • JavaScript 게시판 만들기 (8)
    • Git (9)
      • 강의 정리 (5)
      • 교재 정리 (3)
    • Flutter (27)
      • 기초 (4)
      • Flutter UI 프레임워크 (18)
      • MVVM 패턴과 상태 관리 (4)
    • error note (4)
      • Java (4)
    • 방통대정리 (2)
      • C++프로그래밍 (2)
  • 홈
  • 깃 허브
  • 설정

DP (동적 계획법, Dynamic Programming)

동적 계획법(DP)이란?DP는 문제를 작은 단위로 나누고, 그 결과를 저장하여 동일한 계산을 반복하지 않도록 하는 알고리즘 설계 기법이다. '작은 문제의 답'을 '큰 문제의 답'을 구하는 데 활용한다는 점에서 분할 정복(Divide and Conquer)과 비슷하지만, DP는 중복되는 부분 문제를 저장해서 활용하는 것이 핵심이다. DP가 사용되기 위한 조건은 다음과 같다:최적 부분 구조 (Optimal Substructure): 큰 문제의 최적해가 작은 문제의 최적해로부터 만들어진다.중복되는 부분 문제 (Overlapping Subproblems): 동일한 작은 문제들이 여러 번 반복되어 등장한다.이러한 조건을 만족하는 문제에서는 매번 계산하지 않고 이전에 계산한 결과를 재사용함으로써 시간 복잡도를 획기..

  • format_list_bulleted Java/알고리즘(코테)
  • · 2025. 5. 16.
  • textsms

BFS (너비 우선 탐색, Breadth-First Search)

BFS 개념 및 정의BFS는 그래프 또는 트리에서 시작 정점으로부터 가까운 노드부터 차례대로 탐색해 나가는 알고리즘이다.깊이보다 너비를 우선하여 탐색하며, 일반적으로 큐(Queue) 자료구조를 사용해 구현된다.탐색 순서가 계층적이기 때문에 최단 거리 탐색에 적합한 알고리즘이다. 특징방문한 노드를 다시 방문하지 않기 위해 방문 배열(⟨⟨visited[]⟩⟩) 을 사용큐(Queue) 를 이용해 탐색 순서를 유지모든 노드를 빠짐없이 방문하기에 완전 탐색 문제에 적합DFS와 달리, 깊게 들어가기보다 넓게 퍼지며 탐색예시 상황시작점에서 목표 지점까지의 최단 경로 찾기2차원 배열 기반 미로 탐색불 확산, 물 퍼짐, 전염병 확산 등 주변으로 퍼져나가는 문제레벨 단위 처리가 필요한 경우 (예: 몇 초/몇 단계 후의 상..

  • format_list_bulleted Java/알고리즘(코테)
  • · 2025. 5. 16.
  • textsms

DFS (깊이 우선 탐색, Depth-First Search)

DFS 개념 및 정의DFS(Depth-First Search, 깊이 우선 탐색)는 그래프 또는 트리에서 한 방향으로 가능한 깊이까지 탐색을 진행한 뒤, 더 이상 갈 곳이 없을 때 되돌아와 다른 경로를 탐색하는 방식의 알고리즘이다. 이름 그대로 깊이를 우선으로 탐색하며, 재귀 호출 또는 스택을 이용해 구현된다. 특징방문한 노드를 다시 방문하지 않기 위해 방문 배열( ⟨⟨visited[]⟩⟩ ) 사용백트래킹(backtracking) 기법의 기반이 되는 탐색 방식모든 노드를 빠짐없이 방문하기에 완전 탐색에 적합예시 상황미로 찾기 문제에서 출구까지 가는 경로 찾기조합, 순열, 부분집합과 같은 완전 탐색 문제그래프에서 사이클 여부, 연결 요소 개수 확인DFS의 탐색 과정DFS는 한 노드에서 출발하여 자식 노드 방..

  • format_list_bulleted Java/알고리즘(코테)
  • · 2025. 5. 15.
  • textsms
Tree (트리)

Tree (트리)

트리 기본 용어 정리트리는 계층 구조를 표현하는 대표적인 비선형 자료구조다. 하나의 루트 노드를 시작으로 자식 노드들이 트리 형태로 연결되어 있으며, 노드 간에는 부모-자식 관계가 존재한다. 트리를 이해하기 위해 자주 등장하는 용어들을 정리하면 다음과 같다.루트(Root): 트리의 최상단 노드. 부모가 없으며 트리 전체의 시작점이다.노드(Node): 데이터를 담고 있는 요소로, 루트, 내부 노드, 리프 노드로 나뉜다.간선(Edge): 노드와 노드를 연결하는 선. 하나의 간선은 부모와 자식 노드 간의 관계를 나타낸다.부모(Parent): 한 단계 위에 있는 노드. 자식 노드를 가진다.조상(Ancestor): 기준 노드의 모든 조상자식(Child): 부모로부터 내려온 노드.자손(Descendant): 기준 ..

  • format_list_bulleted Java/알고리즘(코테)
  • · 2025. 5. 13.
  • textsms
Graph (그래프)

Graph (그래프)

그래프의 기본 개념그래프는 정점(Vertex)과 간선(Edge)으로 이루어진 자료구조이다. 정점은 데이터를 담고 있는 노드이고, 간선은 정점 간의 관계를 표현한다. 예를 들어, 사람들 간의 관계를 표현하는 소셜 네트워크나 도시 간의 도로망은 그래프의 대표적인 예시이다. 그래프는 방향성에 따라 두 종류로 나뉜다. 방향 그래프(Directed Graph)는 간선이 단방향으로 연결되어 있어, ⟨⟨A → B⟩⟩와 같은 구조를 가진다. 반면 무방향 그래프(Undirected Graph)는 간선에 방향이 없어 ⟨⟨A - B⟩⟩처럼 양방향 이동이 가능하다. 또한 간선에 가중치(Weight)가 존재할 수도 있다. 이는 두 정점 간의 거리, 비용, 시간 등 다양한 의미로 해석될 수 있다. 가중치가 존재하는 그래프는 가중..

  • format_list_bulleted Java/알고리즘(코테)
  • · 2025. 5. 12.
  • textsms

자료구조 알고리즘 목차

자료구조Array (배열)List (리스트)Stack (스택)Queue (큐) 기초 개념 및 전략Greedy (그리디)재귀 함수 정렬 알고리즘Bubble Sort (버블 정렬)Selection Sort (선택 정렬)Insertion Sort (삽입 정렬)Merge Sort (병합 정렬)Quick Sort (퀵 정렬)탐색 알고리즘Binary Search (이진 탐색)

  • format_list_bulleted Java/알고리즘(코테)
  • · 2025. 5. 11.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • ···
  • 46
  • navigate_next
공지사항
  • 목차 목록
전체 카테고리
  • 분류 전체보기 (582)
    • 설치메뉴얼 (9)
    • Java (273)
      • Java 기초 문법 (24)
      • Java 객체 지향 핵심 (30)
      • Java 유용한 클래스 (51)
      • 자료구조 (20)
      • JSP (28)
      • Swing 프로젝트 (19)
      • 교재 정리 (12)
      • 디자인 패턴 (11)
      • 자바 라이브러리 (6)
      • 알고리즘(코테) (67)
    • Spring Boot (92)
      • Bank App 만들기 (deployment) (30)
      • 추가 개념 (7)
      • Blog 프로젝트 만들기(JPA) (53)
    • My Project (29)
      • 쇼핑몰 (15)
      • Java Swing 멀티 쓰레딩 프로그램 (10)
      • Java 1 : N 양방향 소켓 통신 (스윙) (4)
    • 면접 질의 응답 모음 (5)
    • CS (28)
      • 컴퓨터 구조 (7)
      • 운영체제 (6)
      • 네트워크 (8)
      • 시스템 설계 (7)
    • Vue.js (1)
      • 사전지식 (1)
    • MySQL (47)
      • 정리 (33)
      • 1일 1쿼리 (14)
    • HTML CSS (30)
      • HTML (10)
      • CSS (8)
      • CSS flexbox (9)
      • 블로그 만들기 (3)
    • JS (23)
      • JavaScript 핵심 (6)
      • JS 작업을 위한 코딩 연습 (8)
      • JavaScript 게시판 만들기 (8)
    • Git (9)
      • 강의 정리 (5)
      • 교재 정리 (3)
    • Flutter (27)
      • 기초 (4)
      • Flutter UI 프레임워크 (18)
      • MVVM 패턴과 상태 관리 (4)
    • error note (4)
      • Java (4)
    • 방통대정리 (2)
      • C++프로그래밍 (2)
최근 글
인기 글
태그
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바