반응형
반응형
그래프 문제를 풀 때 노드의 개수 N의 범위가 매우 크면 벡터의 크기를 함부로 설정하기가 난감하다. vector graph[100000]; 와 같이 할당하면 N = 10처럼 노드의 개수가 적은 경우에 메모리 낭비가 되고, 그렇다고 vector graph[10]; 처럼 작게 할당해버리면 N의 범위가 큰 경우에는 범위를 초과해버리기 때문이다. 따라서 vector의 2차원 동적 할당을 이용해 그래프를 만들어준다. vector v; 2차원 벡터란 위와 같이 벡터 안에 벡터를 또 집어 넣는 것이다. 이렇게 하면 v의 행과 열 범위를 동적으로 만들 수 있다. N개의 노드가 있고 M개의 간선이 있는 무방향 그래프가 있다고 해보자. 아래는 N과 M을 입력 받아 M개의 간선 정보를 통해 그래프를 그리는 예시이다. #in..
https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 난이도: solved.ac 골드 3 알고리즘 분류 그래프 이론, 데이크스트라 (Dijkstra) 접근 방법 (풀이 1) 먼저 각 노드 i에서 X로의 최단 거리를 파악하기 위해 모든 노드에 대해 다익스트라 알고리즘을 N번 사용한다. 그리고 dist[X]의 결과를 ans[i]에 저장한다. 그 다음 X에서 다른 모든 노드로의 최단 거리를 파악하는 X를 기준으로 한 다익스트..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.