Blog

[항해99 취업 리부트 코스 학습일지] 18일차

(인강) 그래프 #

그래프 #

정점과 그 정점을 연결하는 간선으로 구성 된 자료구조

  • 무 방향 그래프
    • 간선에 방향 x
    • 정점 간의 순서 x
  • 방향 그래프
    • 간선에 방향 o
    • 정점 간의 순서 o

그래프의 표현 #

입력
3 3
1 2
1 0
2 0
  • 인접 행렬
    • 무 방향 그래프
int N = sc.nextInt(); // 정점
int M = sc.nextInt(); // 간선
	
int[][] adjacencyMatrix = new int[N+1][M+1];
	
for (int i = 0; i < M; i++) {
	int a = sc.nextInt();
	int b = sc.nextInt();
		
	adjacencyMatrix[a][b] = 1;
	adjacencyMatrix[b][a] = 1;
}
  • 방향 그래프
int N = sc.nextInt(); // 정점
int M = sc.nextInt(); // 간선
	
int[][] adjacencyMatrix = new int[N+1][M+1];
	
for (int i = 0; i < M; i++) {
	int a = sc.nextInt();
	int b = sc.nextInt();
		
	adjacencyMatrix[a][b] = 1;
}
  • LinkedList
    • 무 방향 그래프
    int N = sc.nextInt(); // 정점
    int M = sc.nextInt(); // 간선
    
    ArrayList<ArrayList<Integer>> nodeList = new ArrayList<>();
    for (int i = 0; i <= N; i++) { 
    	nodeList.add(new ArrayList<>()); 
    }
    
    for (int i = 0; i < M; i++) {
    	int a = sc.nextInt();
    	int b = sc.nextInt();
    
    	nodeList.get(a).add(b);
    	nodeList.get(b).add(a);
    }
    
    
     ``` Java
     int N = sc.nextInt(); // 정점
     int M = sc.nextInt(); // 간선
    
     LinkedList<Integer>[] nodeList = new LinkedList[];
     for (int i = 0; i <= N; i++) { 
         nodeList[i] = new LinkedList<>();
     }
    
     for (int i = 0; i < M; i++) {
         int a = sc.nextInt();
         int b = sc.nextInt();
    
         nodeList[a].add(b);
         nodeList[b].add(a);
     }
    
    
     - 방향 그래프 ![](https://media.geeksforgeeks.org/wp-content/uploads/20230727155209/Graph-Representation-of-Directed-graph-to-Adjacency-List.png)
    
int N = sc.nextInt(); // 정점
int M = sc.nextInt(); // 간선
	
ArrayList<ArrayList<Integer>> nodeList = new ArrayList<>();
for (int i = 0; i <= N; i++) { 
	nodeList.add(new ArrayList<>()); 
}

for (int i = 0; i < M; i++) {
	int a = sc.nextInt();
	int b = sc.nextInt();
	
	nodeList.get(a).add(b);
}
int N = sc.nextInt(); // 정점
int M = sc.nextInt(); // 간선

LinkedList<Integer>[] nodeList = new LinkedList[];
for (int i = 0; i <= N; i++) { 
	nodeList[i] = new LinkedList<>();
}

for (int i = 0; i < M; i++) {
	int a = sc.nextInt();
	int b = sc.nextInt();
	
	nodeList[a].add(b);
}

오늘의 과제 #

  1. 1072번: 게임
  2. 2108번: 통계학
  3. 2304번: 창고 다각형
  4. 19638번: 센티와 마법의 뿅망치
  5. 3649번: 로봇 프로젝트
  6. 16120번: PPAP
  7. 21939번: 문제 추천 시스템 Version 1
  8. 1655번: 가운데를 말해요

마지막 정리 #

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요? #

Q. 이번 주 진행된 팀 스터디에서 얻은 인사이트는 무엇인가요? #

18일차 학습시간.png


항해99 취업 리부트 코스를 수강하고 작성한 콘텐츠 입니다.

https://hanghae99.spartacodingclub.kr/reboot

#개발자포트폴리오 #개발자이력서 #개발자취업 #개발자취준 #코딩테스트 #항해99 #취리코 #취업리부트코스 #재취업