DFS3 programmers 네트워크(DFS/BFS) https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 위문제는 컴퓨터들의 상호된 네트워크의 갯수를 구하는 문제이다. 나의 경우 DFS를 이용하여 전체 컴퓨터를 돌며 컴퓨터마다 연결된 네트워크를 체크하며 갯수를 늘려주게 하였다. def solution(n,computers): answer = 0 visit = [0] * n def dfs(now): visit[now] = 1 for i in range(n): i.. 2022. 6. 8. programmers 타겟넘버(DFS/BFS) https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 위 문제는 numbers에 있는 모든 숫자를 이용하여 target을 만드는 경우의 수를 구하는 문제인데, +와 -연산자만 이용하여 경우의 수를 구하여야 한다. 나의 경우 dfs를 사용하여 풀이를 하였는데, numbers의 모든 숫자를 순회하기 위해 dfs의 매개변수로 인덱스(나의 경우 level)을 재귀할 때 마다 키워주었고, Sum이란 .. 2022. 6. 8. 깊이우선탐색(dfs) branch와 level이 정해져 있다면 사용하는 것이 좋다(재귀를 사용하기 때문) --> 문제설계시, 방향, 배열범위, dfs를 몇번타는지를 확인하고 설계하는게 좋다. #dfs 꼴 def dfs(level): #(깊이가 깊고 branch가 많다면 이곳에 back tracking용 if문을 사용하는 것이 좋다.) if level ==n: # (도출할 값을 만드는 코드가 이곳에 들어감) return for i in range(len(arr)): dfs(level+1) # 재귀로 깊이우선탐색을 함. dfs(0) 2022. 4. 16. 이전 1 다음