๋ฌธ์
์ฝ๋
#include <iostream>
#include <vector>
using namespace std;
int N;
vector<int>graph[500001];
bool visited[500001];
int odd_height_cnt;
void dfs(int node, int depth){
if(graph[node].size()==1 && node != 1){ // ๋ฆฌํ๋
ธ๋์ผ ๋
if(depth&1) odd_height_cnt++;
return;
}
visited[node] = 1;
for(auto next: graph[node]){
if(!visited[next]){
dfs(next, depth+1);
}
}
}
int main(){
/*
๋์ด๊ฐ ํ์์ธ ๋ฆฌํ๋
ธ๋๊ฐ ํ์๊ฐ๋ฉด ์ด๊ธฐ๊ณ ์ง์๊ฐ๋ฉด ์ง๋ค.
*/
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>N;
for(int i=0; i<N-1; i++){
int a,b; cin>>a>>b;
graph[a].push_back(b);
graph[b].push_back(a);
}
dfs(1, 0);
if(odd_height_cnt % 2 == 0) cout<<"No";
else cout<<"Yes";
}
ํ์ด
ํธ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ๋์ด์์ด์ผ ์ฑ์์ด๊ฐ ์ด๊ธธ ์ ์์์ง ํค ํฌ์ธํธ๋ฅผ ๋ ์ฌ๋ ค์ผ ํ๋ ๋ฌธ์ ์ ๋๋ค.
์ด ๋ฌธ์ ์ ํค ํฌ์ธํธ๋ ์ฑ์์ด๊ฐ ํธ๋ฆฌ์์ ๋์ด๊ฐ ํ์์ธ ๋ฆฌํ ๋ ธ๋๊ฐ ํ์ ๊ฐ๋ฉด ์ด๊ธฐ๊ณ ์ง์ ๊ฐ๋ฉด ์ง๋ค. ์ ๋๋ค.
๋ฐ๋ผ์ ๊ฐ ๋ฆฌํ ๋ ธ๋๊น์ง์ ๋์ด๊ฐ ํ์์ธ ๋ฆฌํ ๋ ธ๋์ ๊ฐ์๊ฐ ๋ช ๊ฐ์ธ์ง๋ฅผ ์ฐพ์์ ์กฐ๊ฑด์ ๋ง๊ฒ Yes์ No๋ฅผ ์ถ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 17266๋ฒ - ์ด๋์ด ๊ตด๋ค๋ฆฌ (0) | 2022.08.18 |
---|---|
[๋ฐฑ์ค,c++] 17521๋ฒ - Byte Coin (0) | 2022.08.18 |
[๋ฐฑ์ค,c++] 11437๋ฒ - LCA (0) | 2022.08.17 |
[๋ฐฑ์ค,c++] 1595๋ฒ - ๋ถ์ชฝ๋๋ผ์ ๋๋ก (0) | 2022.08.15 |
[๋ฐฑ์ค,c++] 14267๋ฒ - ํ์ฌ ๋ฌธํ1 (0) | 2022.08.15 |
[๋ฐฑ์ค,c++] 19542๋ฒ - ์ ๋จ์ง ๋๋ฆฌ๊ธฐ (0) | 2022.08.14 |
๋๊ธ