본문 바로가기

Algorithm14

알고리즘 | leet code | Path With Minimum Effort (DFS + 이분탐색) 📌 문제 : https://leetcode.com/problems/path-with-minimum-effort/ 문제 당신은 다가오는 하이킹을 준비하는 등산객입니다. heights[row][col]은 셀(row, col)의 높이를 나타내는 행 x 열 크기의 2D 배열 높이가 제공됩니다. 당신은 왼쪽 상단 셀 (0, 0)에 있고 오른쪽 하단 셀 (행-1, 열-1)(즉, 0 인덱스)로 이동하기를 원합니다. 위, 아래, 왼쪽 또는 오른쪽으로 이동할 수 있으며 최소한의 노력이 필요한 경로를 찾고 싶습니다. 경로의 노력은 경로의 연속된 두 셀 사이의 최대 절대 높이 차이입니다. 왼쪽 상단 셀에서 오른쪽 하단 셀로 이동하는 데 필요한 최소 노력을 반환합니다. ✔️입력1 heights = [[1,2,2],[3,8,2.. 2021. 9. 16.
알고리즘 | leet code | Path With Minimum Effort (BFS) 📌 문제 : https://leetcode.com/problems/path-with-minimum-effort/ 문제 당신은 다가오는 하이킹을 준비하는 등산객입니다. heights[row][col]은 셀(row, col)의 높이를 나타내는 행 x 열 크기의 2D 배열 높이가 제공됩니다. 당신은 왼쪽 상단 셀 (0, 0)에 있고 오른쪽 하단 셀 (행-1, 열-1)(즉, 0 인덱스)로 이동하기를 원합니다. 위, 아래, 왼쪽 또는 오른쪽으로 이동할 수 있으며 최소한의 노력이 필요한 경로를 찾고 싶습니다. 경로의 노력은 경로의 연속된 두 셀 사이의 최대 절대 높이 차이입니다. 왼쪽 상단 셀에서 오른쪽 하단 셀로 이동하는 데 필요한 최소 노력을 반환합니다. ✔️입력1 heights = [[1,2,2],[3,8,2.. 2021. 9. 15.
합집합 찾기 Union - Find Set 알고리즘 합집합 찾기(Union and Find Set) 알고리즘 많은 서로소 부분 집합들로 나눠진 원소들에 대한 정보를 저장하고 조작하는 자료 구조이다. 두개의 연산을 수행한다. Find 어떤 원소가 주어졌을 때 이 원소가 속한 집합을 반환한다. 어떤 원소가 속한 집합을 대표하는 원소를 반환하는데, 이를 위해 어떤 원소와 각 대표 원소들 간의 파인드 결과를 비교하여 같은 집합임을 판단한다. Union 두 개의 집합을 하나의 집합으로 합친다. 예제 문제 오늘은 새 학기 새로운 반에서 처음 시작하는 날이다. 철수네 반 학생은 N명이다. 철수는 각학생들의 친구관계를 알고 싶다. 모든 학생은 1부터 N까지 번호가 부여되어 있고, 철수에게는 각각 두 명의 학생은 친구 관계가 번호로 표현된 숫자쌍이 주어진다. 만약 (1,.. 2021. 9. 13.
너비 우선 탐색 BFS 알고리즘 - 그래프 탐색 너비 우선 탐색 (BFS)으로 그래프를 탐색해보자. 그래프 탐색 하나의 정점으로 시작하여, 차례대로 모든 정점을 한 번씩 방문하는 것이다. 특정 도시에서 다른 도시로 갈 수 있는지 없는지, 전자 회로에서 특정 단자와 단자가 서로 연결되어 있는지 알아볼 수 있다. 너비 우선 탐색 BFS BFS는 그래프에서 넓게 우선적으로 탐색하는 알고리즘이다. 깊이 우선 탐색 (DFS)은 스택(stack)을 사용하지만, 너비 우선 탐색 (BFS)은 큐(queue)를 사용한다. 두 노드 사이의 최단 경로 혹은 임의의 경로를 찾고 싶을 때 이 방법을 사용한다. DFS보다 빠르지만 복잡하다. 어떤 노드를 방문했는지 검사해야한다. BFS의 동작 방식 자신과 인접한 노드를 전부 queue에 넣는다. queue에 들어있는 노드들을 .. 2021. 9. 11.