ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준][BOJ][Python]11725_트리의부모찾기
    백준 2023. 5. 18. 15:05
    n = input()
    check_list =[]
    tree= {}
    ans = {}
    for _ in range(n-1):
        check_list = list(map(int,input().split()))
        
    for num in check_list:
        temp_1 = check_list[num][0]
        temp_2 = check_list[num][1]
        if temp_1 not in tree:
            tree[temp_1] = temp_2
        else:
            tree[temp_1].append(temp_2)
        if temp_2 not in tree:
            tree[temp_2] = temp_1
        else:
            tree[temp_2] =temp_1
    for num in range(n-1):
        tree[num]=

    알고리시간에 푸는데 

    그 의사코드로는 ....이해를 했음

    1. 트리라는 딕셔너리안에 1~n-1까지의 key값을 둔 다.

    2. a b를 입력시 a를 key b를 value로 한 번 넣어주고, 뒤집어서 또 넣어준다

    3. 재귀를 돌려서 1이라는 key값을 시작으로 그의 value값을 검사하는데, value값(6이라고 가정하면)을 key값으로 두고 그 value값을 다시 검사한다.

    4. DFS로 파고들어가면서! 자식값이 충돌 되면 그의 부모는 충돌되기 전 ....value값이 된다.....인데요....

    코드를 못짜겠음!!!!!!!!

     

    일단 저 for num check_list:이부분....

    무지하게 못생겨보이는 코드라 기분이 안좋습니다.

    구글을 참조하여 보기쉽게 만들어보겠습니다 얍

     

        
    for _ in range(n-1):
        tmp1, tmp2 = map(int,input().split())
        tree[tmp1].append(tmp2)
        tree[tmp2].append(tmp1)

    코드는...이렇게짜는거ㅓㄴ가요...

     

     

    import sys
    sys.setrecursionlimit(1000000)
    
    n = input()
    
    ans = [0 for _ in range(n+1)]
    tree = [[] for _ in range(n+1)]
    
        
    for _ in range(n-1):
        tmp1, tmp2 = map(int,input().split())
        tree[tmp1].append(tmp2)
        tree[tmp2].append(tmp1)
        
    
    
    def recursion(root,tree,parents):
        for i in tree[root]:
            if parents[i] ==0:
                parents[i]=root
                recursion(i, tree,parents)
                
                
    recursion(1,tree,ans)
    
    for i in range(2,n+1):
        print(ans[i])

    구글로 도망치는....

    728x90

    댓글

Designed by Tistory.
티스토리 친구하기