인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다.
문제는 비공개로 입력예제와 출력예제만을 가지고 포스팅
입력예제 1
6 9
1 2 7
1 3 4
2 1 2
2 3 5
2 5 5
3 4 5
4 2 2
4 5 5
6 4 5
출력예제 1
0 7 4 0 0 0
2 0 5 0 5 0
0 0 0 5 0 0
0 2 0 0 5 0
0 0 0 0 0 0
0 0 0 5 0 0
풀이
- 이차원 배열을 선언
- 간선 개수만큼 for문을 돌면서 a / b / c에 입력을 받음 ([a][b]에 c만큼의 비용)
- map[a][b]에 c를 넣어주면 된다
- 무방향 그래프일 때는 map[1][2]=1이면 map[2][1]=1이기에 map[b][a]=1;을 추가한다.
#include <stdio.h>
#include <algorithm>
using namespace std;
int map[51][51];
//63. 인접 행렬
int main(){
int n, m, i, j, a, b, c;
scanf("%d %d", &n, &m); //정점, 간선개수
for(i=1;i<=m;i++){
scanf("%d %d %d", &a, &b, &c);
map[a][b]=c;
//무방향
//map[b][a]=1;
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
printf("%d ", map[i][j]);
}
printf("\n");
}
}
'알고리즘' 카테고리의 다른 글
65. 미로탐색 [DFS] (0) | 2021.01.21 |
---|---|
64. 경로탐색 [DFS] (0) | 2021.01.20 |
62. 병합정렬 (0) | 2021.01.18 |
39. 두배열 합치기 (0) | 2021.01.15 |
프로그래머스-타겟 넘버[DFS] (0) | 2021.01.14 |