본문 바로가기

Portpolio271

자바 알고리즘 인터뷰 21. 그리디 알고리즘 그리디 알고리즘은 탐욕적 알고리즘으로 해석된다. 그리디 알고리즘은 최적화를 위해서 사용하는 알고리즘이다. 현재 이용 가능한 정보를 기반으로 결정이 내려진다는 것이다. 현재 정보가 무엇이든 현재 결정이 미래에 미칠 영향을 걱정하지 않고 결정이 내려진다. 1. 탐욕적 접근 방식은 전역 최적을 찾기 위해 각 단계에서 지역적으로 최적의 선택을 합니다. 2. 욕심 많은 접근 방식은 현재 선택의 미래 결과를 반드시 고려하지 않습니다. 3. 탐욕적 접근 방식은 각 단계에서 지역적으로 최적의 선택을 하면 전역적으로 최적이 되는 문제를 해결하는 데 유용합니다. 대표적인 예시 1. 허프만 코딩 2. 프림 알고리즘 3. 크루스칼 알고리즘 4. 분수 배낭 문제 2024. 2. 16.
자바 알고리즘 인터뷰 20. 슬라이딩 윈도우 2024. 2. 16.
자바 알고리즘 인터뷰 19. 비트 조작 2024. 2. 16.
자바 알고리즘 인터뷰 18. 이진 검색 2024. 2. 16.
자바 알고리즘 인터뷰 17. 정렬 2024. 2. 16.
자바 알고리즘 인터뷰 16. 트라이 2024. 2. 16.
자바 알고리즘 인터뷰 15. 힙 2024. 2. 16.
자바 알고리즘 인터뷰 14. 트리 저번 주제인 그래프에 이어서 트리 역시 비선형 자료구조에 해당한다. 굳이 비교를 하자면, 그래프가 트리를 포함하는 구조라고 할 수 있다. 정의를 비교해보면, 그래프에서 방향과 사이클이 없는 자료 구조가 트리라고 할 수 있다. 그래프와 마찬가지지만 이러한 비선형 자료구조를 표현하기 위해서는 이중 연결리스트의 자료구조를 빌려올 필요가 있다. 주로 언급되는 대부분의 트리는 이진 트리임을 가정해 본 전제 하에서, 아래의 글을 읽으면 좋을 듯 하다. 우선 트리는 루트와 좌측 우측으로 나뉜다. 이러한 루트, 좌측, 우측이라는 구조가 재귀적으로 반복되는 것이 바로 (이진)트리의 형태이다. 우선 트리를 만들려면 루트, 즉 기준점이 있어야 한다. 그 다음에 그 기준점에서 상대적으로 좌측이니 우측이니가 정해지게 된다. 자.. 2024. 2. 16.
자바 알고리즘 인터뷰 13. 최단 경로 문제 2024. 2. 16.
자바 알고리즘 인터뷰 12. 그래프 이 문서는 baeldung의 문서를 번역하여 참조했습니다. https://www.baeldung.com/java-graphs 먼저 그래프의 구성요소에 대해 알아보자. 그래프는 정점(Vertex)과 간선(Edge)으로 구성된다. 여기서 간선과 정점의 개수를 파악해보자. 정점은 5개, 간선은 6개로 구성되어있다. 그래프는 세 가지 종류로 구성된다. 크게 무방향 그래프, 방향 그래프, 가중치 그래프로 나뉜다. 무방향 그래프는 방향이 없는 간선이 두 정점을 연결하는 그래프이다. 방향 그래프는 방향이 있는 간선이 두 정점을 연결하는 그래프이다. 가중치 그래프는 각 간선마다 가중치가 설정되어 있는 그래프이다. 그래프는 비선형 자료구조이다. 연결리스트, 스택, 큐와 같은 선형 자료구조와는 다른 방법으로 표현 방법을 .. 2024. 2. 16.