Algorithm
[S/W 문제해결 기본] 4일차 - 길찾기
이무쿤
2020. 3. 16. 13:05
반응형
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
간단한 도달 문제 . 게리멘더링 등에서 사용되는 길따라 이동시 모든 지점을 방문 하는가에 대한 문제에서 99번째 노드를 방문하는가로만 수정하면 끝이다.
#include<iostream>
#include<string.h>
#include<queue>
using namespace std;
int arr[100][2];
bool visit[100];
int main(int argc, char** argv)
{
for(int test = 0; test < 10; test++)
{
int tc , set_num;
cin >> tc >> set_num;
memset(arr,0,sizeof(arr));
memset(visit,false,sizeof(visit));
for(int i = 0; i < set_num; i++)
{
int start,end;
cin >> start >> end;
if(!arr[start][0])
{
arr[start][0] = end;
}
else
{
arr[start][1] = end;
}
}
visit[0] = true;
queue<int> que;
for(int i = 0; i <= 1; i++)
{
if(arr[0][i])
{
que.push(arr[0][i]);
visit[arr[0][i]] = true;
}
}
bool flag = false;
while(!que.empty())
{
if(visit[99])
{
flag = true;
break;
}
int next = que.front();
que.pop();
for(int i = 0; i <= 1; i++)
{
if(arr[next][i])
{
visit[arr[next][i]] = true;
que.push(arr[next][i]);
}
}
}
if(flag)
{
cout << "#" <<tc<<" "<<1<<endl;
}
else
{
cout << "#" <<tc<<" "<<0<<endl;
}
}
return 0;
}반응형