전체 글
-
양방향 최단 경로카테고리 없음 2019. 12. 11. 01:52
#pragma warning(disable:4996) #include #include #include #define INF 30000 #define TRUE 1 #define FALSE 0 int n; int m; int s; int **weight; int *distance; int *found; void input() { int x, y, value; for (int i = 0; i < m; i++) { scanf("%d %d %d", &x, &y, &value); weight[x][y] = value; weight[y][x] = value; } for (int i = 1; i < n; i++) { weight[i][i] = 0; } } int choose(int n) { //현재 distance 배..
-
최단경로카테고리 없음 2019. 12. 11. 01:50
최단 경로(shortest path)문제는 정점 u와 정점 v를 연결하는 경로 중 간선들의 가중치 합이 최소가 되는 경로를 찾는 문제다. 간선의 가중치는 경우에 따라 비용, 거리, 시간 등으로 해석될 수 있다. 아래의 그래프를 살펴보자. 정점 0에서 정점 3으로 가는 최단 경로는 ( 0, 4, 1, 2, 3 )이고 이 때의 비용(거리)은 3 + 2 + 4 + 2 = 11 이다. 정점 0에서 정점 3으로 가는 다른 경로가 얼마든지 존재하지만, 최소의 거리로 갈 수 있는 방법은 이 방법 뿐이다. 가중치는 가중치 인접 행렬이라고 불리는 2차원 배열에 저장된다. 가중치 인접 행렬은 기존의 인접행렬과 차이점이 있다. 기존의 인접 행렬에서는 간선이 없는 구간에는 행렬의 값을 0으로 했었다. 그러나 가중치 인접 행렬..
-
방향그래프 구현(위상정렬)카테고리 없음 2019. 11. 27. 19:48
#pragma warning(disable:4996) #include #include #include int n; int m; int *in; int cnt; char *check; typedef struct Node //노드 정의 { char data; struct Node *next; }Node; typedef struct //Queue 구조체 정의 { Node *front; //맨 앞(꺼낼 위치) Node *rear; //맨 뒤(보관할 위치) int count;//보관 개수 }Queue; Queue queue; void InitQueue(Queue *queue) { queue->front = queue->rear = NULL; //front와 rear를 NULL로 설정 queue->count = 0..
-
위상정렬 indegree 방법카테고리 없음 2019. 11. 27. 13:01
indegree란 한 정점에서 자신에게 들어오는 방향인 간선의 수입니다. 다음과 같은 그래프에서 각정점의 indegree의 개수는 1번 정점: 0 2번 정점: 1 3번 정점: 0 4번 정점: 3 이 됩니다. 즉 화살표 방향이 자기를 향하고 있는 간선의 개수 입니다. 우리는 간선의 정보를 받을 때 모든 정점의 indegree의 개수를 세준 후 queue에 indegree가 0인 정점을 삽입해 줍니다. 정점의 횟수 만큼 반복문을 돌려 다음 작업을 반복합니다. -> 큐의 front를 추출하여 해당 정점에서 나가는 간선을 다 지워준 후 지워진 간선에 의하여 indegree가 0이 되는 정점들을 queue에 삽입해줍니다. (이때 간선을 지워준 다는 것은 간선의 종점인 정점들의 indegree의 개수를 -1 해줌으..
-
방향그래프 구현카테고리 없음 2019. 11. 27. 01:30
#pragma warning(disable:4996) #include #include #include int n; int m; char *in; typedef struct Node //노드 정의 { int data; struct Node *next; }Node; typedef struct Queue //Queue 구조체 정의 { Node *front; //맨 앞(꺼낼 위치) Node *rear; //맨 뒤(보관할 위치) int count;//보관 개수 }Queue; Queue queue; void InitQueue(Queue *queue) { queue->front = queue->rear = NULL; //front와 rear를 NULL로 설정 queue->count = 0;//보관 개수를 0으로 설정..
-
android title bar 없애기카테고리 없음 2019. 11. 26. 20:02
기본 테마에 style 추가 (추천) 내가 추천하는 가장 안전하고 간단한 방법이다. 아마도 이 방법이 가장 정확한 방법일 것이다. 위의 방법들은 예전에는 먹히는 방법들이었지만 그럼에도 불구하고 사실 편법이었을 뿐이다. 방법은 간단하다. 프로젝트 생성 시 기본적으로 생성된 style.xml 파일을 열어서 아래 그림과 같이 하나를 추가하는 것이다. 사실 이 태그가 @android:style/Theme.NoTitleBar 테마가 가진 전부이다. 따라서 이 item 태그만 기본 style에 추가해주면 다른 모든 style은 그대로 이고 타이틀바 제거 속성만 enable 시키게 된다. 즉, 이 item을 추가한 후에도 타이틀바 외에 모든 색상, 스타일 등은 그대로 유지된다. 게다가 최신 SDK에서도 전혀 문제가 ..
-
queue 구현카테고리 없음 2019. 11. 26. 01:01
#pragma warning(disable:4996) #include #include #include int n; int m; #include #include #include typedef struct Node //노드 정의 { int data; struct Node *next; }Node; typedef struct Queue //Queue 구조체 정의 { Node *front; //맨 앞(꺼낼 위치) Node *rear; //맨 뒤(보관할 위치) int count;//보관 개수 }Queue; void InitQueue(Queue *queue) { queue->front = queue->rear = NULL; //front와 rear를 NULL로 설정 queue->count = 0;//보관 개수를 0으..