WonYong-Jang / algorithm

0 stars 0 forks source link

위상정렬 #22

Open WonYong-Jang opened 5 years ago

WonYong-Jang commented 5 years ago

위상정렬 ( 그래프 정렬 )

예 ) 가수 출연 순서

2018-10-02 2 00 37 2018-10-02 2 00 47

참고 링크 : https://m.blog.naver.com/PostView.nhn?blogId=kks227&logNo=220800013823&proxyReferer=https%3A%2F%2Fwww.google.com%2F

사이클 확인


        for(int i=1; i<= N; i++) // inddegree 0 인 노드 큐에 삽입
        {
            if(degree[i] == 0) que.add(i); 
        }
        solve();
        if(!flag) // 사이클 발생 안한 경우 
        {
            for(int i=0; i< temp.size(); i++)
            {
                System.out.println(temp.get(i));
            }
        }

    }
    public static void solve()
    {
        for(int i=0; i< N; i++)
        {
            if(que.isEmpty()) // N 번 돌지 못하고 끝이 나는 것은 사이클 발생 
            {
                System.out.println(0);
                flag = true;
                return;
            }

            int n = que.poll();

            temp.add(n);

            for(int next : adj.get(n))
            {
                degree[next]--;         //연결된 노드 indegree --
                if(degree[next] == 0) // indegree 0 인 노드는 큐에 삽입 
                {
                    que.add(next);
                }
            }
        }
    }
WonYong-Jang commented 5 years ago

위상정렬 응용 문제

문제 : 색칠 공부

https://koitp.org/problem/COCI_2014C2_PALETA/read/