스택 (3) 썸네일형 리스트형 탐색 알고리즘 DFS/BFS : 파이썬(Python) DFS(Depth-First Search) DFS는 Depth-First Search, 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. DFS를 알기 위해 먼저 그래프(Graph)의 기본 구조를 알아야 한다. 그래프는 노드와 간선으로 표현되며 이때 노드를 정점이라고도 말한다. 그래프 탐색이란 하나의 노드를 시작으로 다수의 노드를 방문하는 것을 말한다. 또한 두 노드가 간선으로 연결되 있다면 '두 노드는 인접하다' 라고 표현한다. 노드를 도시, 간선을 도로라고 생각해보면, A 라는 도시(노드)에서 B라는 도시(노드)로 이동하기 위해 , A와B를 연결하는 도로(간선)을 거친다고 이해하면 쉽다. 프로그래밍에서 그래프는 크게 2가지 방식으로 표현할 수 있다. 인접 행렬(.. 자료구조 기초(파이썬 : Python) 탐색(Search) 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 뜻한다. 프로그래밍에서는 그래프, 트리 등의 자료구조 안에서 탐색을 하는 문제를 자주 다룬다. 대표적인 탐색 알고리즘으로 DFS와 BFS를 꼽을 수 있다. DFS와 BFS를 제대로 이해하려면 기본 자료구조인 스택과 큐에 대한 이해가 전제되어야 하므로 사전 학습으로 스택과 큐, 재귀 함수를 알아야 한다. 자료구조(Data Structure) '데이터를 표현하고 관리하고 처리하기 위한 구조'를 의미한다. 그중 스택과 큐는 자료구조의 기초 개념으로 삽입과 삭제의 두 핵심함수로 구성된다. 삽입(Push) : 데이터 삽입 삭제(Pop) : 데이터를 삭제한다. 실제로 스택과 큐를 사용할 때는 삽입과 삭제 외에도 오버플로와 언더플로를 고민해야한.. 자바(JAVA) - 객체 지향 언어 : 변수와 메서드(2) 변수와 메서드 [6] JVM의 메모리 구조 응용프로그램이 시작되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그 중 3가지 주요영역(method area, call stack, heap)이 있다. 1. 메서드 영역(method area) 어떤 클래스가 실행되면, JVM은 해당 클래스의 클래스파일(*.class)를 일고 분석하여 클래스에 대한정보를 메서드 영역에 저장한다. 이때, 그 클래스의 클래스변수(class variable)도 이 영역에 함께 생성된다. 2. 힙(heap) 인스턴스가 생성되는 공간. 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다. 즉, 인스턴스변수(instance variable.. 이전 1 다음