Algorithm 7

Algorithm | 탐욕 알고리즘(Greedy Algorithm)

1. 탐욕 알고리즘이란?Greedy algorithm 또는 탐욕 알고리즘이라고 불러옴최적의 해에 가까운 값을 구하기 위해 사용여러 경우 중 하나를 결정해야할 때마다, 매순간 최적이라고 생각되는 경우를 선택하는 방식으로 진행해서, 최종적인 값을 구하는 방식  2. 탐욕 알고리즘 예 문제 1 : 동전 문제 지불해야 하는 값이 4720원일 때 1원 50원 100원, 500원 동전으로 동전의 수가 가장 적게 지불하시오.  * 가장 큰 동전부터 최대한 지불해야 하는 값을 채우는 방식으로 구현 가능  * 탐욕 알고리즘으로 매순간 최적이라고 생각되는 경우를 선택하면 됨public class GreedyAlgorithm { public void coinFunc(Integer price, ArrayList coinLis..

Coding Test 2024.10.19

Graph | 깊이 우선 탐색 (Depth-First Search)

1. DFS 알고리즘 구현 자료구조 스택과 큐를 활용함 * needVisit 스택과 visited 큐, 두 개의 자료 구조를 생성     BFS 자료구조는 두 개의 큐를 활용하는데 반해, DFS는 스택과 큐를 활용한다는 차이가 있음을 인지해야 함  public class DFSSearch { public ArrayList dfsFunc(HashMap> graph, String startNode) { ArrayList visited = new ArrayList(); ArrayList needVisit = new ArrayList(); needVisit.add(startNode); while(needVisit.size() > 0) { ..

Coding Test 2024.10.17

Graph| 그래프 이해와 자료 구조

1. 그래프(Graph)란?그래프는 실제 세계의 현상이나 사물을 정점(Vertex) 또는 노드(Node)와 간선(Edge)로 표현하기 위해 사용 2. 그래프(Graph) 관련 용어* 노드(Node) : 위치를 말함. 정점(Vertex)라고도 함 * 간선(Edge) : 위치 간의 관계를 표시한 선으로, 노드를 연결한 선이라고 보면 됨(link 또는 branch 라고도 함)* 인접 정점(Adjacent Vertex) : 간선으로 직접 연결된 정점(또는 노드)* 참고 용어    * 정점의 차수(Degree) : 무방향 그래프에서 하나의 정점에 인접한 정점의 수     * 진입 차수(In-Degree) : 방향 그래프에서 외부에서 오는 간선의 수     * 진출 차수(Out-Degree) : 방향 그래프에서 외..

Coding Test 2024.10.16

탐색 알고리즘 | 순차 탐색(Sequential Search)

1 . 순차 탐색(Sequential Search)이란?탐색은 여러 데이터 중에서 원하는 데이터를 찾아내는 것을 의미 데이터가 담겨있는 리스트를 앞에서부터 하나씩 비교해 원하는 데이터를 찾는 방법 ArrayList testData = new ArrayList();for(int i = 0; i 순차탐색 알고리즘import java.util.ArrayList;public class SequencialSearch { public int searchFunc(ArrayList dataList, Integer searchItem) { for(int index = 0; index

Coding Test 2024.10.16

Algorithm 알고리즘이란?

velog에서 정리 한 것들을 블로그 이전하는 김에 다시 재정리를 하려고 한다. 2023년 2월 15일 - https://velog.io/@yujin-17/TIL-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 알고리즘이란? 알고리즘은 어떠한 문제를 해결하려는 방법과 절차입니다. 우리가 하려는 프로그래밍에 꼭 필요한 요소로 볼 수 있습니다. 이러한 알고리즘에는 조건이 있습니다. 입력 : 외부에서 제공되는 자료 출력 : 적어도 2개 이상의 서로 다른 경로가 출력 명확성 : 수행과정은 무엇을 하기 위한 것인지 명확하게 정의 유한성 : 알고리즘의 명령어 대로 수행하였을 때 처리된 후 종료 효율성 : 시공간적 효율성을 가져야하며, 명백하게 실행 가능 좋은 알고리즘이란? 밑의 4가지를 충족하는 ..

개발지식공간 2024.01.31