프로그래밍 이야기/파이썬 코딩 테스트 스터디

파이썬 코딩테스트 스터디 8주차 #1 - 그래프 개념

hoony926 2024. 8. 15. 12:52

 

그래프의 개념

그래프 용어 정리

 

코딩테스트 합격자 되기 : 파이썬 편 - 369page

 

  • 동그라미 : 노드
  • 화살표 : 간선
  • 간선 위 숫자 : 가중

 

그래프의 특징과 종류

방향성, 가중치, 순환 특성에 따라 종류 구분

 

흐름을 표현하는 방향성

간선은 방향이 있는 것도(방향 그래프), 없는 것도 있다.(무방향 그래프)

 

흐름의 정도를 표현하는 가중치

코딩테스트 합격자 되기 : 파이썬 편 - 370p

 

시작과 끝의 연결 여부 

순환 그래프, 비순환 그래프

코딩테스트 합격자 되기 : 파이썬 편 - 371p

 

 

코딩테스트 합격자 되기 : 파이썬 편 - 371p

그래프 구현

서울에서 부산으로 유동 인구 8,000명 발생.

그래프의 노드, 간선, 방향, 가중치로 연결해보기

  • 데이터 담고 있는 노드 : 서울, 부산
  • 노드 잇는 간선 : 서울과 부산 연결 유무
  • 간선의 방향 : 서울 → 부산 
  • 간선의 가중치 : 8,000명

 

그래프의 구현 방식 

1. 인접 행렬

2. 인접 리스트

 

인접 행렬 그래프 표현

: 배열을 활용하는 경우가 많음. 

  • 배열의 인덱스: 노드
  • 배열의 값 : 가중치
  • 인덱스의 세로 방향 : 출발 노드
  • 인덱스의 가로 방향 : 도착 노드

코딩테스트 합격자 되기 : 파이썬 편 - 372p

 

즉,아래와 같은 의미이며

실제 코드에서는 값이 없을 경우(연결이 안되어있을 경우)  -1로 저장

 

- 2차원 배열

Index 0 1
0 서울 → 서울 = -1 서울 → 부산 = 400
1 부산 → 서울 = -1 부산 → 부산 = -1

 

 

인접 리스트 그래프 표현

 

  1. 노드 개수만큼 배열 생성
  2. 배열의 인덱스는 각 시작 노드, 값은 다음 노드

코딩테스트 합격자 되기 : 파이썬 편 - 373p
코딩테스트 합격자 되기 : 파이썬 편 - 374p
코딩테스트 합격자 되기 : 파이썬 편 - 375p

 

 

 

♬ 자료 출처 - 책

코딩 테스트 합격자 되기 - 파이썬 편

 

 

 

이 포스팅의 모든 내용은 해당 책의 내용을 바탕으로 하고 있습니다. 

감사합니다.