[Coding Test]/[백준]
[백준] 24445 파이썬(python) : 알고리즘 수업 - 너비 우선 탐색 2
알고리즘 수업 - 너비 우선 탐색 2 import sysfrom collections import dequen, m, r = map(int, sys.stdin.readline().split())graph = [ [] for _ in range(n+1) ]for _ in range(m): a, b = map(int, sys.stdin.readline().split()) graph[a].append(b) graph[b].append(a)visit = [0] * (n + 1)count = 1visit[r] = countdef bfs(): global count q = deque() q.append(r) while q: now = q.popleft() ..
[백준] 24444 파이썬(python) : 알고리즘 수업 - 너비 우선 탐색 1
알고리즘 수업 - 너비 우선 탐색 1 구글에 검색하면 다른 방식의 풀이들이 많아서 24480번 문제랑 비슷하게 풀어봤습니다. import sysfrom collections import deque #1n, m, r = map(int, sys.stdin.readline().split())graph = [ [] for _ in range(n+1) ]for _ in range(m): a, b = map(int, sys.stdin.readline().split()) #2 graph[a].append(b) #3 graph[b].append(a)visited = [0] * (n+1) #4 count = 1visited[r] = 1def bfs(v): global count q = ..
[백준] 24480 파이썬(python) : 알고리즘 수업 - 깊이 우선 탐색 2
24480번 : 알고리즘 수업 - 깊이 우선 탐색 2 이번에도 pypy3 말고 python3에서 제출해야 합니다. import syssys.setrecursionlimit(10**9)n, m, r = map(int, sys.stdin.readline().split())graph = [ [] for _ in range(n+1) ]for _ in range(m): a, b = map(int, sys.stdin.readline().split()) graph[a].append(b) graph[b].append(a)visited = [0] * (n+1)visited[r] = 1count = 1def dfs(v): global count graph[v].sort(reverse=T..
[백준] 24479 파이썬(python) : 알고리즘 수업 - 깊이 우선 탐색 1
24479번 : 알고리즘 수업 - 깊이 우선 탐색 1 pypy3로 제출하면 메모리초과가 발생하니 python3로 제출해야한다. import sys sys.setrecursionlimit(10**9) #1 n, m, r = map(int, sys.stdin.readline().split()) graph = [ [] for _ in range(n+1) ] #2 visit = [0] * (n + 1) #3 for _ in range(m): a, b = map(int, sys.stdin.readline().split()) #4 graph[a].append(b) #5 graph[b].append(a) count = 1 def dfs(v): global count visit[v] = count #7 graph[v]..
[백준] 1260 파이썬(python) : DFS와 BFS - (다른풀이)
1260번 : DFS와 BFS 다른 사람의 풀이) from collections import deque n, m, v = map(int, input().split()) vertex = [ [0]*(n+1) for i in range(n+1) ] #6 for i in range(m): a, b = map(int, input().split()) vertex[a][b] = vertex[b][a] = 1 #1 visit = [0] * (n+1) def dfs(v): visit[v] = 1 #2 print(v, end=" ") for i in range(1, n+1): if visit[i] == 0 and vertex[v][i]==1: dfs(i) #3 def bfs(v): visit[v] = 0 #4 q = d..
[백준] 1182 파이썬(python) : 부분수열의 합 - (조합)
1182번: 부분수열의 합 def dfs(idx, sum): global answer if(idx >= n): #1 return sum += arr[idx] #2 if s == sum: #3 answer += 1 dfs(idx+1, sum-arr[idx]) #4 dfs(idx+1, sum) #5n, s = map(int, input().split())arr = list(map(int, input().split()))answer = 0dfs(0, 0)print(answer) #1 : 재귀함수 탈출조건(idx가 깊이이고 배열의 idx는 n-1까지 이므로 idx == n이면 탈출)#2 : 자신의 위치의 값 포함#3 : 만들 수 있으면 answer +1..