전체 글68 이진 탐색 트리(Binary Search Tree) (Java) 트리에 대해 정리한 게시글이다. 해당 게시글을 읽기 전 참고하면 좋을 것 같다. 트리(Tree) (Java) 트리(Tree)란? 트리 구조란 노드들이 나무 가지처럼 연결된 비선형 계층적 자료구조이다. 용어 트리 구조를 보며 알아야 할 용어들이 몇 개 있다. 부모 노드(parent node) : 자기 자신(노드)과 연결된 hyeon-z.tistory.com 이진 탐색 트리(Binary Search Tree)란? 이진 + 탐색 + 트리 즉, 이분화된 탐색을 위한(혹은 특화된) 트리 자료구조이다. 이진 트리 (Binary Tree) 모든 노드의 최대 차수를 2로 제한한 트리. 각 노드는 자식 노드를 최대 2개까지 가질 수 있다. 탐색에 특화된 트리 ❓위의 이진 트리의 각 노드가 갖고 있는 값이 규칙이 없다면 .. 2023. 5. 3. 트리(Tree) (Java) 트리(Tree)란? 트리 구조란 노드들이 나무 가지처럼 연결된 비선형 계층적 자료구조이다. 용어 트리 구조를 보며 알아야 할 용어들이 몇 개 있다. 부모 노드(parent node) : 자기 자신(노드)과 연결된 노드 중 자신보다 높은 노드를 의미 (ex. F의 부모노드 : B) 자식 노드(child node) : 자기 자신(노드)과 연결 된 노드 중 자신보다 낮은 노드를 의미 (ex. C의 자식노드 : G, H) 루트 노드 (root node) : 일명 뿌리 노드라고 하며 루트 노드는 하나의 트리에선 하나밖에 존재하지 않고, 부모노드가 없다. 위 이미지에선 녹색이 뿌리노드다. 단말 노드(leaf node) : 리프 노드라고도 불리며 자식 노드가 없는 노드를 의미한다. 위 이미지에서 주황색 노드가 단말노.. 2023. 5. 3. 이진 탐색(Binary Search) (Java) 이진 탐색이란? "정렬된 배열"에서 특정한 값을 찾아내는 알고리즘 배열의 중간 값과 찾고자 하는 값을 비교하면서 탐색한다. 찾고자 하는 값이 X라고 하면, X가 중간 값보다 작으면 좌측 데이터를 대상으로, X가 중간 값보다 크면 우측 데이터들을 대상으로 다시 탐색한다. 해당 과정을 X를 찾을 때까지 반복한다. 시간 복잡도 전체 데이터 수를 N이라고 하자. 1) 첫 번째 탐색 후 절반만 남아 남은 수가 N/2개 2) 두 번째 탐색에서 다시 절반만 남아 남은 수가 N/2 ×1/2개 3) 세 번째 탐색에서 다시 절반이 남아 남은 수가 N/2 ×1/2 ×1/2개 ... k) 규칙을 찾아보면 k번째 탐색에서 남은 데이터 수는 (1/2)^k * N이 된다. 최고의 경우 중간 값이 찾고자 하는 값인 경우에는 한 번에.. 2023. 5. 3. 🥈[백준, 1260] DFS와 BFS (Java) 문제 링크 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 난이도 시간제한 2초 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), .. 2023. 4. 18. 🥈[백준, 1260] DFS와 BFS (Java) 문제 링크 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 난이도 시간제한 2초 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), .. 2023. 4. 18. 6-3장 변수와 메서드 下 (3.7 ~ 3.12) 7. JVM의 메모리 구조 * cv는 클래스 변수, lv는 지역 변수, iv는 인스턴스 변수를 뜻한다. 메서드 영역 (method area) 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일(*.class)을 읽어서 분석하여 클래스에 대한 정보를(클래스 데이터)를 이곳에 저장한다. 이 떄, 그 클래스의 클래스 변수(class variable)도 이 영역에 함께 생성된다. 힙 (heap) 인스턴스가 생성되는 공간. 프로그램 실행 중 인스턴스는 모두 이곳에 생성된다. 즉, 인스턴스 변수(instance variable)들이 생성되는 공간이다. 호출스택 (call stack 또는 execution stack) 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서드가 호출되면, 호출.. 2023. 4. 18. 이전 1 2 3 4 5 6 7 8 ··· 12 다음