๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 14675๋ฒˆ - ๋‹จ์ ˆ์ ๊ณผ ๋‹จ์ ˆ์„ 

by ์•ˆ์ฃผํ˜• 2022. 6. 30.

๋ฌธ์ œ

 

14675๋ฒˆ: ๋‹จ์ ˆ์ ๊ณผ ๋‹จ์ ˆ์„ 

ํ”„๋กœ๊ทธ๋žจ์˜ ์ž…๋ ฅ์€ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š”๋‹ค. ์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํŠธ๋ฆฌ์˜ ์ •์  ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (2 ≤ N ≤ 100,000) ํŠธ๋ฆฌ์˜ ์ •์ ์€ 1๋ฒˆ๋ถ€ํ„ฐ n๋ฒˆ๊นŒ์ง€ ์กด์žฌํ•œ๋‹ค. ๋‹ค์Œ ์ค„๋ถ€ํ„ฐ N-1๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๊ฐ„์„ ์˜ ์ •

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
#include <vector>
using namespace std;

vector<vector<int>>graph;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int N; cin>>N;
    graph.resize(N+1);
    
    for(int i=0; i<N-1; i++){
        int a,b; cin>>a>>b;
        graph[a].push_back(b);
        graph[b].push_back(a);
    }
    int q; cin>>q;
    for(int i=0; i<q; i++){
        int t,k; cin>>t>>k;
        if(t==1){
            if(graph[k].size()>1) cout<<"yes"<<'\n';
            else cout<<"no"<<'\n';
        }
        else cout<<"yes"<<'\n';
    }
}

 

ํ’€์ด

๋ฌธ์ œ ํ•ด๊ฒฐ ์•„์ด๋””์–ด๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๋˜๊ฒŒ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. 

๋จผ์ € ๋‹จ์ ˆ์„ ์ธ ๊ฒฝ์šฐ๋Š” ์‹ ๊ฒฝ์„ ์“ฐ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. 

์œ„ ๊ทธ๋ฆผ์„ ์˜ˆ์‹œ๋กœ ์‚ดํŽด๋ดค์„ ๋•Œ ์–ด๋Š ๋‹จ์ ˆ์„ ์„ ์ž๋ฅด๋”๋ผ๋„ ์ „๋ถ€ ๊ทธ๋ž˜ํ”„๊ฐ€ 2๊ฐœ ์ด์ƒ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‹จ์ ˆ์ ์ธ ๊ฒฝ์šฐ์—๋Š” ์ž˜๋ณด๋ฉด ๋ฆฌํ”„ ๋…ธ๋“œ์˜ ๊ฒฝ์šฐ์—๋Š” ๋‚˜๋ˆ„๋”๋ผ๋„ 2๊ฐœ ์ด์ƒ์œผ๋กœ ๋ถ„๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ฌธ์ œ๋Š” ๋ฆฌํ”„ ๋…ธ๋“œ์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€