icon_cakewalk 프로그램 15-1

     

    모든 친구를 찾는 알고리즘

     

    ◉ 예제 소스 p15-1-friend.py

    # 친구 리스트에서 자신의 모든 친구를 찾는 알고리즘

    # 입력: 친구 관계 그래프 g, 모든 친구를 찾을 자신 start

    # 출력: 모든 친구의 이름

     

    def print_all_friends(g, start):

     

        qu = []       # 기억 장소 1: 앞으로 처리해야 할 사람들을 큐에 저장

        done = set()  # 기억 장소 2: 이미 큐에 추가한 사람들을 집합에 기록(중복 방지)

     

        qu.append(start)    # 자신을 큐에 넣고 시작

        done.add(start)     # 집합에도 추가

     

        while qu:           # 큐에 처리할 사람이 남아 있는 동안

            p = qu.pop(0)   # 큐에서 처리 대상을 한 명 꺼내

            print(p)        # 이름을 출력하고

            for x in g[p]:  # 그의 친구들 중에

                if x not in done:  # 아직 큐에 추가된 적이 없는 사람을

                    qu.append(x)   # 큐에 추가하고

                    done.add(x)    # 집합에도 추가

     

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.