반응형 분류 전체보기252 [백준][Python] 2178번 미로 탐색 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 코드 from collections import deque def bfs(x,y): queue = deque() queue.append((x,y)) while queue: x,y = queue.popleft() for i in range(4): # 왼쪽,오른쪽,위,아래 방향 모두 확인 nx = x + x_n[i] ny = y + y_n[i] if nx >= 0 and nx = 0 and ny < m:# 범위를 벗어나지 않고 if maze[nx][ny] == 1:# 이동할 .. 2022. 10. 4. [백준][Python] 14267번 회사 문화 1 14267번: 회사 문화 1 영선회사에는 매우 좋은 문화가 있는데, 바로 상사가 직속 부하를 칭찬하면 그 부하가 부하의 직속 부하를 연쇄적으로 칭찬하는 내리 칭찬이 있다. 즉, 상사가 한 직속 부하를 칭찬하면 그 부하 www.acmicpc.net 코드 처음에는 칭찬을 받은 직원을 입력받을 때마다 트리를 순회해서 해당 직원의 부하 직원을 모두 찾아 값을 더해줬는데 시간 초과가 났다. import sys from collections import defaultdict def dfs(a,b): visit = [False]*(n+1) queue = [] queue.append(a) while queue: next = queue.pop() if visit[next]: continue visit[next] = Tr.. 2022. 9. 30. [백준][Python] 1240번 노드사이의 거리 1240번: 노드사이의 거리 N(2≤N≤1,000)개의 노드로 이루어진 트리가 주어지고 M(M≤1,000)개의 두 노드 쌍을 입력받을 때 두 노드 사이의 거리를 출력하라. www.acmicpc.net 코드 import sys from collections import defaultdict def find(a,b): queue = [] queue.append((a,0)) visit[a] = True while queue: next,len = queue.pop() if next == b: return len for i,l in dic[next]: if visit[i]: continue visit[i] = True queue.append((i,l+len)) n,m = map(int,input().split().. 2022. 9. 29. [백준][Python] 4803번 트리 4803번: 트리 입력으로 주어진 그래프에 트리가 없다면 "No trees."를, 한 개라면 "There is one tree."를, T개(T > 1)라면 "A forest of T trees."를 테스트 케이스 번호와 함께 출력한다. www.acmicpc.net 코드 import sys from collections import defaultdict def check(j): ret = True queue = [j] while queue: a = queue.pop() if visit[a] == 1: # 사이클 ret = False visit[a] = 1 for k in dic[a]: if k == a: ret = False if visit[k] == 0: queue.append(k) return ret .. 2022. 9. 27. 이전 1 ··· 20 21 22 23 24 25 26 ··· 63 다음 반응형