목록코딩공부/알고리즘 (5)
개발세발
📍그리디 Greedy = 욕심쟁이 알고리즘 = 탐욕법 : 현재 상황에서 지금 당장 좋은 것만 고르는 방법 - 기준에 따라 좋은 것을 선택하는 알고리즘 ➡️ 코테 문제에서 '가장 큰 순서대로', '가장 작은 순서대로' 와 같은 기준을 제시해줌 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner..

이분법 : Bisection Method 이진탐색 : Binary Search 📝 [예제 - 백준 2805 나무 자르기] https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 위의 예시는 N개의 서로다른 길이의 나무가 있으며 동일한 높이에서 나무를 잘라낼 때, 총 길이 M을 얻을 수 있는 높이의 최대값을 구하는 문제이다. 이분탐색을 응용하여 푸는 문제이다. 총 길이를 중앙값에서 뺀 값들을 더해가며 원하는 M값에..
[이진검색트리 (binary serach tree -BST)] 1> 위 이진트리 구조 가운데 조건을 부여한 구조 2> 부모보다 작은 값을 가지는 노드는 왼쪽 자식으로 배치 3> 부모와 부모보다 큰 값을 가지는 노드는 오른쪽 자식으로 배치 4> 같은 키를 가지는 노드는 존재하지 않음 5> 이진검색트리 6>트리 조회시 inorder - 왼쪽자식 - 부모 - 오른쪽자식 조회시 오름차순 정렬 7> 이진검색트리 구성, 구현 8> 검색어(특정데이터) / 데이터를 추가 / 데이터를 삭제 ==> 이진트리 검색 조건에 맞게 구현 1. 트리 안의 Node 생성 class Node{ String name; Node left; Node right; ==> 노드를 알파벳으로 구성할 경우 class Node{ String nam..

[단순삽입(Insertion) 정렬] insertion 정렬은 선택한 요소를 그보다 더 앞쪽의 알맞은 위치에 '삽입'하는 정렬방식이다. 자리를 뒤로 밀어 이동하여 삽입하고자 하는 자리를 확보한 뒤 삽입하려고 하는 값을 해당 자리에 삽입하는 개념이다. 값이 가장 작은 요소를 선택해서 알맞은 위치로 이동시킨다. static void insertion(int [] a, int n) { for(int i = 1; i 0 && a[j-1] > tmp ; j--) { a[j] = ..