13244 tree 문제 질문
265
작성한 질문수 19
안녕하세요 13244 tree 문제 풀다가 질문 생겨서 글 남깁니다.
http://boj.kr/c294aa7ee185421d8f6ccb6ff804b4b0
저는 위와 같이 코드를 작성했는데, 틀렸다고 나와서요
제가 놓친 반례에는 어떤 것이 있을 수 있나요?
저는 엣지 노드 갯수 비교하는 부분이 없고, 이미 엣지가 있는지 체크하고 추가하였습니다.
답변 2
0
트리는 노드와 노드 사이 간선이 하나 인 것으로 알고 있습니다.
//이게 왜 필요하죠? 라고 물으신 부분은
예제 입력 1번의 두 번째 테스트 케이스가 노드1 과 노드2 사이 간선이 2개이고 그 결과 그래프가 되어서
이미 노드와 노드 사이 간선이 있다면 트리가 불가능 하다고 작성한 로직입니다.
이러한 로직이 전체 코드를 놓고 봤을 때 m=n-1을 의미 하는 것 아닌가요?
0
음 근데 이렇게 오는 경우 체크가 불가능하죠. 1 2 2 1 이렇게 들어오는 경우라면 이미 양방향 간선이 만들어졌기 때문에 있다고 표기가 되서 해당 부분 if문에 빠지게 됩니다.
0
음..
엣지가 있는 체크한다. 이 부분 설명 부탁드려도 될까요?
그리고 주석달았습니다. 확인부탁드려요
#include <iostream>
#include <vector>
#include <memory.h>
#include <algorithm>
using namespace std;
int T,n,m,possible;
int a, b;
vector<int> adj[1004];
int visited[1004];
void dfs(int here)
{
visited[here] = 1;
for (int there : adj[here])
{
if (visited[there] == 0)
{
dfs(there);
}
}
}
int main()
{
cin >> T;
while (T--)
{
// initialize good
possible = 1;
memset(visited, 0, sizeof(visited));
for (int i = 0; i < 1004; i++)
{
adj[i].clear();
}
cin >> n;
cin >> m;
// make map
for(int i = 0; i < m; i++)
{
cin >> a >> b;
//이게 왜 필요하죠?
auto it = find(adj[a].begin(), adj[a].end(), b);
if (it != adj[a].end())
{
possible = 0;
break;
}
else
{
adj[a].push_back(b);
adj[b].push_back(a);
}
}
//dfs 굿
dfs(1);
// check
for (int i = 1; i <= n; i++)
{
if (visited[i] == 0)
{
possible = 0;
break;
}
}
//m = n - 1을 확인하는 부분이 없네요?
// print
if (possible == 1) cout << "tree" << "\n";
else cout << "graph" << "\n";
}
return 0;
}
1-E질문입니다!
0
508
2
3-L 틀린 부분 피드백 부탁드립니다.
0
811
2
1-A문제 순열재귀함수 질문입니다.
0
376
1
1-A 일곱난쟁이문제입니다
0
451
1
문제 풀 때 방향성에 대해
0
793
1
맥에서 vs code로 실행 관련 질문입니다
0
515
1
17071번 메모리 초과
0
381
1
1-C질문입니다!
0
411
2
2-B BFS 시간초과질문
0
622
2
1-O 13번 라인
0
434
1
6-J 놀이공원 문제 질문
0
375
1
구현관련 질문
0
478
1
강의 교안
0
313
1
실력을 더 올리고나서 강의를 보는 것이 맞을까요?
0
541
1
안녕하세요! 재귀함수에 관해서 질문드립니다
0
531
1
1-K
0
468
2
3-G번 질문있습니다.
1
464
3
3-C 실행 시간 질문드립니다.
0
489
1
4-A 문제 풀이 질문있습니다.
0
586
2
비트마스킹 연산자 "1의 보수" 영문 표기법
0
430
1
격자탐색 문제에서 BFS 시간복잡도 질문드립니다.
0
329
1
3-O go 함수 질문 드립니다.
1
437
2
4-A 출력 질문
0
298
1
1주차 1-O 질문드립니다
0
250
1





