top of page

소스 코드 제출

공개·회원 81명

20260528

/*

// 4503 바이러스 - dfs 인접 리스트

#include <stdio.h>

#include <stdlib.h>


typedef struct GraphNode

{

int vertex;

struct GraphNode* link;

} GraphNode;


GraphNode* adj[101] = {};

int v[101] = {};

int n, k = 0;


void insertEdge(int a, int b)

{

GraphNode* node = (GraphNode*)malloc(sizeof(GraphNode));

node->vertex = b;

node->link = adj[a];

adj[a] = node;

}


void dfs(int x)

{

GraphNode* p = adj[x];


v[x] = 1;


while(p != NULL)

{

int next = p->vertex;


if(v[next] == 0)

{

k++;

dfs(next);

}


p = p->link;

}

}


int main()

{

int m, i, a, b;

scanf("%d %d", &n, &m);


for(i = 0; i < m; i++)

{

scanf("%d %d", &a, &b);


insertEdge(a, b);

insertEdge(b, a);

}


dfs(1);


printf("%d", k);


return 0;

}

*/

/*

// 4714 키 순서 - dfs 인접리스트

#include <stdio.h>

#include <stdlib.h>


typedef struct Node

{

int vertex;

struct Node* link;

} Node;


Node* bigGraph[501] = {};

Node* smallGraph[501] = {};

int v[501] = {};

int n, m;

int cnt;


void insertEdge(Node* adj[], int a, int b)

{

Node* node = (Node*)malloc(sizeof(Node));

node->vertex = b;

node->link = adj[a];

adj[a] = node;

}


void dfs(Node* adj[], int x)

{

Node* p = adj[x];


while(p != NULL)

{

int next = p->vertex;


if(v[next] == 0)

{

v[next] = 1;

cnt++;


dfs(adj, next);

}


p = p->link;

}

}


void resetVisited()

{

for(int i = 1; i <= n; i++)

{

v[i] = 0;

}

}


int main()

{

int i, a, b;

int answer = 0;


scanf("%d %d", &n, &m);


for(i = 0; i < m; i++)

{

scanf("%d %d", &a, &b);


insertEdge(bigGraph, a, b);

insertEdge(smallGraph, b, a);

}


for(i = 1; i <= n; i++)

{

int total = 0;


resetVisited();

v[i] = 1;

cnt = 0;

dfs(bigGraph, i);

total += cnt;


resetVisited();

v[i] = 1;

cnt = 0;

dfs(smallGraph, i);

total += cnt;


if(total == n-1)

{

answer++;

}

}


printf("%d", answer);


return 0;

}

*/


// 4503 바이러스 - bfs 인접 리스트

#include <stdio.h>

#include <stdlib.h>


typedef struct Node

{

int vertex;

struct Node* link;

} Node;

3회 조회
주소 : 경기도 용인시 광교중앙로 302 블루 스퀘어 602호
연락처 : 031) 216 - 1546 ,     031) 215 - 1546
사업자등록번호 : 465-92-00916
​학원 등록 제 4603호
bottom of page