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

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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바