하루기록

220721 DFS/BFS 네트워크 파이썬, 타겟넘버 파이썬

매우빠른거부기 2022. 7. 21. 17:29

#네트워크

from collections import deque
def bfs(visited, v, computers):
    que = deque()
    visited[v] = True
    que.append(v)
    while que:
        tmp = que.popleft()
        for i in range(len(computers[tmp])):
            if i != tmp:
                if computers[tmp][i] and not visited[i]:
                    que.append(i)
                    visited[i] = True
    return visited

def solution(n, computers):
    visited = [False]*n
    answer = 0    
    for i in range(n):
        if visited[i] == False:
            visited = bfs(visited, i, computers)
            answer += 1
    return answer

 

#타겟넘버

def solution(numbers, target):
    answer = 0
    
    tarList = [[] for i in range(len(numbers))]
    tarList[0].append(numbers[0])
    tarList[0].append(-numbers[0])
    for i in range(1,len(tarList)):
        for j in tarList[i-1]:
            tarList[i].append(j+numbers[i])
            tarList[i].append(j-numbers[i])
        
    answer = tarList[-1].count(target)
    
    return answer