그래프 기본

동동·2023년 4월 3일
0

알고리즘 공부

목록 보기
10/23
post-thumbnail
  • 그래프는 노드와 엣지로 구성된 집합이다.
  • 노드는 데이터를 표현하는 단위이고, 에지는 노드를 연결한다.
  • 트리도 그래프의 일종이며, 그래프는 여러 알고리즘에 많이 사용되는 자료구조이므로 코딩 테스트에 자주 등장한다.

유니온 파인드

  • 그래프의 사이클이 생성되는지 판별하는 알고리즘

위상 정렬

  • 알고리즘 조건 : 사이클 x, 방향이 있는 그래프
  • 그래프의 노드들을 선형으로 정렬하는 알고리즘
  • 대표적인 문제 : 수강신청(수1을 듣고 수2를 신청해야하는), 롤 아이템 업그레이드

다익스트라, 벨만-포드, 플로이드-워셜

  • 최단거리를 구하는 알고리즘
    • 다익스트라
      • 시작점이 있고 다른 모든 노드로 가는 최단거리를 구하는 알고리즘
      • 음수간선이 있으면 x
    • 벨만-포드
      • 음수사이클이 있는지를 체크하는 문제로 많이 나옴
      • ex) 시간여행, 워프
      • 음수간선도 ok
    • 플로이드-워셜
      • 시작점이 없음
      • 모든 노드 쌍의 최단거리를 구한다. → 시간 복잡도가 안좋음

최소 신장 트리

  • 그래프에서 최소의 가중치 합으로 모든 노드를 연결할 수 있게 해주는 알고리즘
  • 사이클 x
  • 최소 신장 트리를 쓰려면 유니온 파인드가 필요하다(트리특 : 사이클이 없음).

출처 - 하루코딩

profile
알고리즘 문제를 주로 업로드합니다.

0개의 댓글