[백준] 1976번 여행 가자 (= lets go travel) - 재우스 프로그래밍 (C 언어)
2021. 2. 7. 19:00ㆍ백준
문제 링크 :www.acmicpc.net/problem/1976
#include <stdio.h>
#include <stdbool.h>
#define DEBUG 0
#define MAX_CITY_SIZE 201
bool inputCity[MAX_CITY_SIZE][MAX_CITY_SIZE]; //도시들간의 연결 저장
bool arrCity[MAX_CITY_SIZE]; //여행할 첫 도시로부터 연결된 모든 도시 저장
int N; //도시의 수
void visit(int);
int main(void)
{
bool result = true;
int inputNum = 0;
int M = 0; //여행 계획에 있을 도시의 수
//도시간의 연결 입력값 저장
scanf("%d", &N);
scanf("%d", &M);
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
scanf("%d", &inputNum);
inputCity[i][j] = inputNum;
}
}
//여행할 첫 도시 저장
scanf("%d", &inputNum);
visit(inputNum); //여행할 첫 도시로부터 연결된 도시를 arrCity에 저장
//arrCity에 저장된(즉 여행할 첫 도시와 연결된) 도시인지 검사하고
//모두 연결되어 있으면 여행 가능하므로 YES, 하나라도 연결 안되면 여행 불가능하므로 NO 출력
for (int i = 2; i <= M; i++) {
scanf("%d", &inputNum);
if (!arrCity[inputNum]) {
result = false;
break;
}
}
//결과 출력
if (result) { printf("YES\n"); }
else { printf("NO\n"); }
return 0;
}
void visit(int cityNum)
{
arrCity[cityNum] = true;
for (int i = 1; i <= N; i++) {
if (inputCity[cityNum][i] && !arrCity[i]) {
visit(i);
}
}
}
'백준' 카테고리의 다른 글
[백준] 14425번 문자열 집합 (= string set) - 재우스 프로그래밍 (C 언어) (0) | 2021.02.16 |
---|---|
[백준] 3055번 탈출 (= escape) - 재우스 프로그래밍 (C 언어) (0) | 2021.02.08 |
[백준] 2468번 안전 영역 (= safe area) - 재우스 프로그래밍 (C 언어) (0) | 2021.02.06 |
[백준] 11866번 요세푸스 문제0 (= josephus problem0) - 재우스 프로그래밍 (C 언어) (0) | 2021.02.05 |
[백준] 2164번 카드2 (= card2) - 재우스 프로그래밍 (C 언어) (0) | 2021.02.04 |