ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로그래머스 네트워크(LV3)
    알고리즘 2020. 7. 25. 02:40

     

     

     

     

    200721 기상 : 6시? 다시 자서 12시 ㅋ..

    다 이전 스터디 때 했던 거


    ☝🏻문제 설명

    네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어 있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다.

    컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오.

    제한사항

    컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다.

    i 번 컴퓨터와 j 번 컴퓨터가 연결되어 있으면 computers[i][j]를 1로 표현합니다. computer[i][i]는 항상 1입니다.

     

     

    입출력 예

    n

    computers

    return

    3

    [[1, 1, 0], [1, 1, 0], [0, 0, 1]]

    2

    3

    [[1, 1, 0], [1, 1, 1], [0, 1, 1]]

    1

     첫 번째

    몰라서 인터넷 ㅋ

     

    def dfs(computers, visited, start):
            record = [start]
            while record:
                j = record.pop()
                if visited[j] == 0:
                    # 방문하고 체크하고있으니까 1로 변경
                    visited[j] = 1
                 
                # 컴퓨터 수만큼 반복문 돌림.
                for i in range(len(computers)):
                    # 연결되어 있는 경우 + 방문하지 않았을 경우 
                    if computers[j][i] ==1 and visited[i] == 0:
                        record.append(i) # 추가해서 계산 
                        
    def solution(n, computers):
        answer = 0
        # 방문기록 컴퓨터 수만큼 0으로 초기화(방문X)
        visited = [0]*n
        start = 0
        # 방문하지 않은 경우가 있을 경우, 반복문 들어감(계산)
        while 0 in visited:
            if visited[start] ==0:
                dfs(computers, visited, start)
                answer +=1
            # 방문 했을 경우 이제 다음 index로 이동. 
            start+=1
        return answer

     

     

     

    🤷‍♂️

    이해 안 되면 막 씀

    bfs dfs 전혀 모르겠음

    그래서 언니한테 물어봤는데

    알고리즘 스터디 따로 하면서

    그 bfs dfs 각각 일주일에 6개씩 3달 하니까 이제는 모든 bfs dfs 풀 수 있다더라

    참 좋은 조언이었다.


    느낀 점

    오늘 내가 너무 싫었다

    난 봐도 전혀 모르겠는데

    친구는 문제들을 읽자마자 어떤 식으로 바로 아는게

    부러웠고 그냥 내가 너무 노간지

    친구는 잘못한 게 없는데 미워지는 나 자신이 너무 싫고

    그 친구가 이미 나보다 많이 풀고 공부했으니까 당연히 그렇다고 생각해도

    쉽게 사라지지 않는 생각에 내가 너무 싫었고 미안했다

    노간지 ㄹㅇ

    열심히 해야지😀

    댓글

Designed by Tistory.