[묘공단]코딩 테스트 합격자 되기(7주차) 그래프

Erdos·2024년 2월 20일
0

코딩테스트

목록 보기
15/20
post-thumbnail

📖저자님의 책 소개 영상: https://www.youtube.com/watch?v=Q13Uj_5bH9M

🗓️TIL (this week I learned)
화 읽기, 정리가 까다로움🤔

목 몸풀기문제1
금 몸풀기문제
토 문제

11-2 그래프 탐색 ⭐⭐⭐

깊이 우선 탐색
Depth-first search (DFS)
너비 우선 탐색
Breadth-first search (BFS)
참고wiki(en)
wiki(ko)
wikipedia(en)
wiki(ko)
그림
특성가장 깊은 노드까지 방문한 후에 더이상 방문할 노드가 없으면 최근 방문한 노드로 돌아온 다음, 해당 노드에서 방문할 노드가 있는지 확인한다.시작 노드부터 인접한 노드를 모두 방문한 후 그다음 단계의 인접 노드를 방문(먼저 발견한 노드)
활용🔹모든 가능한 해를 찾는 백트래킹 알고리즘을 구현할 때
🔹그래프의 사이클을 감지해야 하는 경우
🔹미로 찾기에서 최단 경로를 찾을 때
🔹네트워크 분석 문제
장점- 현 경로상의 노드를 기억하기 때문에 비교적 적은 메모리
- 목표노드가 깊은 단계에 있을 경우 해를 빨리 찾을 수 있음
- 가중치가 없는 그래프에서 최단 경로 보장
- 노드 수가 적고 깊이가 얕은 해가 존재할 때 유리
단점🔹해가 없는 경우 깊이 빠질 가능성
🔹얻은 해가 최적의 해가 아닐 수도 있음(해에 다다르면 탐색을 끝내므로)
🔹경로가 매우 길 경우 많은 저장 공간이 필요함
🔹해가 존재하지 않는 유한 그래프인 경우, 모든 그래프 탐색 후 실패로 끝남
🔹무한 그래프의 경우 해를 찾지도 못하고, 끝내지도 못함.

11-3 그래프 최단 경로 구하기

1. 다익스트라 알고리즘

🔹음의 가중치가 있는 그래프에서 다익스트라 알고리즘은 제대로 동작하지 않음.
🔹가장 좋은 것을 선택하는 전력을 가진 그리디 알고리즘 원리와 같음
🔹한 단계당 하나의 노드에 대한 최단 거리를 확실히 찾는다.

2. 벨만-포드 알고리즘

🔹매 단계마다 모든 간선의 가중치를 다시 확인하여 최소 비용 갱신, 음의 가중치를 가지는 그래프에서 최단 경로를 구할 수 있음.
🔹왜 정점 개수 -1만큼 반복하는가? 매 연산마다 최단 경로가 1개씩 확정되므로 ✅

🔹왜 한 번 더 연산을 반복하는가? 음의 순환을 찾기 위해!

🤔🤔🤔🤔

3. 플로이드 워셜 알고리즘(Floyd-Warshall Algorithm)

🔹모든 지점에서 다른 모든 지점까지의 최단 경로를 구해야 하는 경우에 사용하는 알고리즘

11-4 문제

1. 게임 맵 최단거리

https://school.programmers.co.kr/learn/courses/30/lessons/1844


2. 네트워크

https://school.programmers.co.kr/learn/courses/30/lessons/43162

3. 배달

https://school.programmers.co.kr/learn/courses/30/lessons/12978

4. 경주로 건설(고난이도)

https://school.programmers.co.kr/learn/courses/30/lessons/67259

5. 전력망을 둘로 나누기

https://school.programmers.co.kr/learn/courses/30/lessons/86971

추천문제

  1. 가장 먼 노드 https://school.programmers.co.kr/learn/courses/30/lessons/49189
  2. 방의 갯수
    https://school.programmers.co.kr/learn/courses/30/lessons/49190
  3. 순위
    https://school.programmers.co.kr/learn/courses/30/lessons/49191
  4. 합승 택시 요금
    https://school.programmers.co.kr/learn/courses/30/lessons/72413
  5. 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165
  6. 여행 경로
    https://school.programmers.co.kr/learn/courses/30/lessons/43164
profile
수학을 사랑하는 애독자📚 Stop dreaming. Start living. - 'The Secret Life of Walter Mitty'

0개의 댓글