그래프 표현 방법 간단한 정리

2024. 3. 19. 20:28·Computer Science/Algorithms

그래프(Graph)

정점과 간선의 집합으로 구성되는 자료구조

 

 

방향 그래프

  • 간선에 방향이 있는 그래프
  • A정점에서 B정점으로 향하는 간선과 B정점에서 A정점으로 향하는 간선이 서로 다를 수있다.

무방향 그래프

  • 간선에 방향이 없는 그래프
  • A-B를 연결하는 간선이 동일한 간선이다.

가중치 그래프

  • 간선에 가중치(weight) 혹은 비용(cost)이 할당된 그래프
  • 연결된 정점들 간 탐색에 드는 비용이나, 연결 강도 등을 표현

 

 

그래프 표현 방법

인접 행렬

  • 일반적으로 2차원 배열을 이용해서 표현
  • adj[행][열] = 연결여부(or 가중치)
  • 공간 복잡도
    • V개의 정점이 있다면, V*V 만큼의 공간을 사용한다.
  • 시간 복잡도
    • 연결관계(가중치) 조회/저장 : O(1)
    • 한 정점에 연결된 모든 간선 조회 : O(V)
    • A와 B를 잇는 간선 존재 여부 확인 : O(1)

인접 리스트

  • 간선의 정보를 기반으로 저장하는 방법
  • 공간 복잡도
    • V개의 정점, E개의 간선이 있다면 V+E 만큼의 공간을 사용한다.
  • 시간 복잡도
    • 연결관계(가중치) 조회/저장 : O(deg(V))
    • 정점에 연결된 모든 간선 조회 : O(deg(V))
    • A와 B를 잇는 간선 존재 여부 확인 : O(min(deg(A), deg(B)))

 

정점의 차수와 성질

이러한 성질은 단방향 그래프일 경우 적용되지 않는다. 이 점을 참고하자 !

출처) 패스트캠퍼스 알고리즘 강의 : 류호석님 강의 자료

 

 

 

 

간단하게 그래프 탐색 알고리즘 문제를 풀기 전에, 그래프 성질에 대해 알아보았다. 이미 알고 있던 내용이지만 복습 겸 정리했다. 그래프에 대해 더 자세히 공부하고 싶다면 아래 글을 읽어보면 좋을 것 같다. 이제 알고리즘 문제를 풀어보자 !

 

https://yozm.wishket.com/magazine/detail/2411/

 

그래프 알고리즘 종류와 활용 방법 | 요즘IT

그래프 알고리즘(Graph Algorithms)은 네트워크 분석, 경로 찾기, 최적화 문제 등 다양한 문제를 해결하는 데 사용되는 중요한 알고리즘입니다. 이번 글에서는 그래프에 관한 기본 개념과 구현 방법

yozm.wishket.com

 

 

 

 

'Computer Science/Algorithms' 카테고리의 다른 글
  • Next Permutation
  • 1, 2차원에서 구간 합 구하기 - 1
  • Monotonic Stack
  • [수학] 소수 구하기
kimdozzi
kimdozzi
끝까지 포기하지 않으면, 내가 다 이겨!
  • kimdozzi
    도브로
    kimdozzi
  • 전체
    오늘
    어제
    • 분류 전체보기 (132)
      • Problem Solving (49)
        • Baekjoon (29)
        • Programmers (0)
        • LeetCode (17)
        • 삼성 유형 (2)
      • Computer Science (27)
        • Operating System (2)
        • Algorithms (13)
        • Network (6)
        • DataBase (6)
      • Backend (33)
        • JavaScript (0)
        • TypeScript (6)
        • Java (7)
        • Spring Boot (7)
        • Spring Security (6)
        • JPA (2)
        • Mybatis (1)
        • Junit5 (1)
        • Redis (3)
      • DevOps (14)
        • Git, Github (5)
        • docker (4)
        • AWS (3)
        • nginx (2)
      • etc (6)
        • IntelliJ (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 티스토리
    • 설정
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    인덱서블 타입
    백준
    온라인 쿼리
    imos법
    타입스크립트
    누적합
    segment tree
    파이썬
    docker image
    docker
    TypeScript
    오블완
    python
    구간 업데이트
    삼성기출
    티스토리챌린지
    S3
    오프라인 쿼리
    CORS
    컨테이너
    인덱스 시그니처
    점 업데이트
    구간합
    알고리즘
    PrefixSum
    Bucket
    도커
    세그먼트 트리
    interface
    AWS
    인터페이스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
kimdozzi
그래프 표현 방법 간단한 정리
상단으로

티스토리툴바