코딩테스트 역량 강화 교육(거점형 특화 프로그램)이라는 프로그램에 참여해 공부한 내용입니다.
- IT 직무로 취업을 희망하는 지원자들이 코딩테스트를 통과할 수 있는 알고리즘을 활용한 프로그래밍 교육이며, PCCP 자격증 취득이 목표인 프로그램
- 상세 설명 - 수원대학교(대학일자리 플러스센터)
그래프는 G(V, E)로 정의하고, V(Vertext : 정점)과 E(Edge : 간선) 의 집합을 의미한다.
즉, 연결되어 있는 원소들간의 관계를 표현하는 자료구조이다.
2차원 배열을 이용해 그래프를 표현하는 방법
edge = [[1, 2], [1, 3], [2, 4], [2, 5], [3, 4]]
graph = [[0] * (n+1) for _ in range(n+1)]
for [a, b] in edge:
graph[a][b] = 1
graph[b][a] = 1
edge = [[1, 2], [1, 3], [2, 5], [3, 4], [4, 2]]
graph = [[0] * (n+1) for _ in range(n+1)]
for [a, b] in edge:
graph[a][b] = 1
연결리스트을 이용해 그래프를 표현하는 방법
[
[]
[2, 3]
[1, 4, 5]
[1, 4]
[2, 3]
[2]
]
edge = [[1, 2], [1, 3], [2, 4], [2, 5], [3, 4]]
graph = [[] for _ in range(n+1)]
for [a, b] in edge:
graph[a].append(b)
graph[b].append(a)
[
[]
[2, 3]
[5]
[4]
[2]
[]
]
edge = [[1, 2], [1, 3], [2, 5], [3, 4], [4, 2]]
graph = [[] for _ in range(n+1)]
for [a, b] in edge:
graph[a].append(b)
위와 같이 그래프를 학습한 후 풀이한 문제는 아래와 같다.