Study & Project ✏️/알고리즘 📋 44

백준[Python] 2667.단지번호붙이기 - 파이썬

📖 문제 📃 코드 import sys input = sys.stdin.readline N = int(input()) complex = [] result = [] cnt = 0 # 아래, 위, 왼쪽, 오른쪽 dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] def bfs(x, y): global cnt if x = N or y = N: return if complex[x][y] == 1: cnt += 1 # 다시 방문하지 않게 초기화 complex[x][y] = 0 for i in range(4): nx = x + dx[i] ny = y + dy[i] bfs(nx, ny) for i in range(N): complex.append(list(map(in..

백준[Python] 13023.ABCDE - 파이썬

📖 문제 📃 코드 import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline N, M = map(int, input().split()) relation = [[] for i in range(N)] visited = [False] * (N+1) ans = False for i in range(M): a, b = map(int, input().split()) relation[a].append(b) relation[b].append(a) def dfs(idx, depth): global ans visited[idx] = True # 1. 종료조건 # case A-B-C-D-E 같은 친구 관계가 있는지 검사 if depth == 4: ans = Tru..

백준[Python] 11724.연결 요소의 개수 - 파이썬

📖 문제 📃 코드 import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline N, M = map(int, input().split()) matrix = [[0]*(N+1) for i in range(N+1)] visited = [False] * (N+1) for i in range(M): a, b = map(int, input().split()) matrix[a][b] = matrix[b][a] = 1 def dfs(v): visited[v] = True for node in range(len(matrix[v])): if visited[node] == False and matrix[v][node] == 1: dfs(node) cnt = 0 fo..

백준[Python] 1260.DFS와 BFS - 파이썬

📖 문제 📃 코드 from collections import deque import sys input = sys.stdin.readline N, M, V = map(int, input().split()) matrix = [[0]*(N+1) for i in range(N+1)] visited = [False] * (N+1) visited1 = [False] * (N+1) for i in range(M): a, b = map(int, input().split()) matrix[a][b] = matrix[b][a] = 1 def dfs(V): visited[V] = True print(V, end=" ") # 수행동작 for i in range(N+1): if visited[i] == False and mat..

프로그래머스[Python] 네트워크 - 파이썬

📖 문제 📃 코드 def dfs(n, computers, com, visited): visited[com] = True # 자기 자신을 제외한 모든 case를 방문했는지 확인 for nx in range(n): if nx != com and computers[com][nx] == 1: # 방문하지 않았다면 if visited[nx] == False: dfs(n, computers, nx, visited) def solution(n, computers): answer = 0 visited = [False]*n # 모든 컴퓨터들을 돌면서 네트워크 체크 for com in range(n): # 만약 방문하지 않은 컴퓨터라면 dfs실행 if visited[com] == False: dfs(n, computers..

프로그래머스[Python] 타겟 넘버 - 파이썬

📖 문제 📃 코드 # 정수들을 순서를 바꾸지 않고 적정히 더하거나 빼서 # -> 모든 숫자들을 사용해야함 DFS def dfs(numbers, target, index, s): global answer # 1. 탈출조건 if index == len(numbers): if s == target: answer += 1 return answer # 2. 수행동작 dfs(numbers, target, index+1, s + numbers[index]) dfs(numbers, target, index+1, s - numbers[index]) def solution(numbers, target): global answer answer = 0 dfs(numbers, target, 0, 0) return answer ..

백준[Python] 14425.문자열 집합 - 파이썬

📖 문제 📃 코드 import sys import collections input = sys.stdin.readline N, M = map(int, input().split()) strHash = collections.defaultdict(int) cnt = 0 for _ in range(N): s = input().strip() strHash[s] for _ in range(M): s = input().strip() if s in strHash: cnt += 1 print(cnt) 🔗 링크 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄..