728x90
반응형
https://www.acmicpc.net/problem/11725
처음에는 예제 보고도 문제가 이해안됐는데
이런 뜻이었다
bfs를 이용해서 풀었고
처음에는 출력하는 부분에서 endl 을 썼는데 시간초과가 떴다
그래서 "\n"으로 바꿨더니 통과했다
#include <bits/stdc++.h>
using namespace std;
int n;
vector<int> graph[100001];
int parent[100001];
void bfs(int n){
queue<int> q;
q.push(n);
while(!q.empty()){
int x = q.front();
q.pop();
for(int i=0; i<graph[x].size(); i++){
int y = graph[x][i];
if(parent[y]==0){
parent[y] = x;
q.push(y);
}
}
}
}
int main(void) {
cin >> n;
for(int i=0; i<n-1; i++){
int x, y;
cin >> x >> y;
graph[x].push_back(y);
graph[y].push_back(x);
}
bfs(1);
for(int i=2; i<=n; i++){
cout << parent[i] << "\n";
}
return 0;
}
이렇게 하면 결과가 위처럼 나오는데
main 함수 안에
ios::sync_with_stdio(0);
cin.tie(0);
이걸 추가해주면
메모리는 조금 더 쓰지만 시간이 훨씬 줄어든다
vector<vector<int>> graph(n+1); // 인접 리스트
찾아보니 벡터를 배열 말고 이렇게 사용할 수도 있었다
728x90
반응형
'알고리즘' 카테고리의 다른 글
[이코테/이진탐색/C++] 파라메트릭 서치/ 떡볶이 떡 만들기 (0) | 2023.01.01 |
---|---|
[이코테/이진탐색/C++] 이진 탐색 알고리즘 (설명/시간복잡도/예시) (0) | 2023.01.01 |
[백준/DP/C++] 1699번 제곱수의합 (0) | 2022.12.31 |
[백준/DP/C++] 2579번 계단 오르기 (0) | 2022.12.30 |
[백준/BFS/C++] 2178번 미로 탐색 (0) | 2022.12.30 |