top of page

소스 코드 제출

공개·회원 50명

2025.05.07

/*#include <stdio.h>

#include <stdlib.h>

int a[50000]={},b[50000]={};

int comp(int *pa,int *pb)

{

if(*pa>*pb)

{

return 1;

}

else

{

return 0;

}

}

int bs(int s,int e,int k)

{

int mid=(s+e)/2;

if(s>e)

{

return e+2;

}

if(b[mid]==k)

{

return mid;

}

else if(b[mid]<k)

{

return bs(mid+1,e,k);

}

else

{

return bs(s,mid-1,k);

}

}

int main()

{

int i,n;

scanf("%d",&n);

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

{

scanf("%d",&a[i]);

b[i]=a[i];

}

qsort(b,n,sizeof(int),comp);

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

{

printf("%d ",bs(0,n-1,a[i]));

}

return 0;

}*/


/*

스택 or 재귀를 사용하는 dfs 방식

#include <stdio.h>

int graph[101][101]={};

int v[101]={};

int n;


void dfs(int x)// x 노드에서 갈 수 있는 모든 노드에 다녀오기 (x 노드에서 dfs 하기)

{

printf("%d->",x);

v[x]=1;

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

{

if(graph[x][i]==1 && v[i]==0)

{

dfs(i);

}

}

}

*/

// 레이더처럼 가까운 애들 다 보고 가는 bfs

#include <stdio.h>

int graph[101][101]={};

int v[101]={};

int n;

//큐 선언

int queue[101]={},front=-1,back=-1;

void bfs(int x)

{

printf("%d->",x);

v[x]=1;

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

{

if(graph[x][i]==1&&v[i]==0)

{

queue[++back]=x;

}

front++;

bfs(queue[front]);

}

return ;

}

int main()

{

int i,j,k,x,y;

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

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

{

scanf("%d %d",&x,&y);

graph[x][y]=1;

graph[y][x]=1;

}

bfs(1);

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

{

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

{

printf("%d ",graph[i][j]);

}

printf("\n");

}

}

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