99클럽 코테 스터디 12일차 TIL + BFS 백준 7569오늘의 학습 키워드BFS백준 7569토마토3차원 배열 구현공부한 내용1. 3차원 배열 구현3중 리스트 컴프리핸션graph[높이][세로][가로]# 3차원 배열 초기화graph = [[[0 for _ in range(M)] for _ in range(N)] for _ in range(H)]# 값 입력 받기for i in range(H): for j in range(N): graph[i][j] = list(map(int, input().split()))2. BFS 구현방향 벡터 설정# 6방향 이동 (위, 아래, 앞, 뒤, 왼쪽, 오른쪽)dx = [0, 0, 0, 0, -1, 1]dy = [0, 0, -1, 1, 0, 0]dz = [..
99클럽 코테 스터디 11일차 TIL + DFS 백준 25195오늘의 학습 키워드DFS백준 25195Yes or yes공부한 내용1. DFSDFS를 활용해서 정점까지의 경로 중에 곰곰이 팬을 피할 수 있는지 확인하는 것def DFS(v): global visited, graph, answer if v in fans: # 현재 노드에 팬이 있으면 return return if not graph[v]: # 리프 노드에 도달했고 팬을 만나지 않았다면 answer = True # 팬을 피할 수 있는 경로 발견 return visited[v] = True for i in graph[v]: if not visited[i]: ..
99클럽 코테 스터디 10일차 TIL + BFS(백준 18352)오늘의 학습 키워드BFS최단거리 알고리즘단방향, 양방향거리측정과 방문 체크공부한 내용1. 그래프의 방향성이 문제에서는 단방향 그래프이기 때문에 양방향이랑 헷갈리지 않아야 한다.for _ in range(M):a, b = map(int, input().split())graph[a].append(b) # 단방향2. BFS를 이용한 최단 거리 찾기BFS의 deque를 활용하여 최단 거리를 찾는 방식방문 리스트를 거리 저장 용도로 같이 활용한다면 더 효율적인 코드를 작성할 수 있다.# 방문 배열을 거리 저장용으로 활용visited = [-1] * (N + 1) # -1로 초기화하여 미방문 표시visited[start] = 0 # 시작..
99클럽 코테 스터디 9일차 TIL + 오늘의 학습 키워드(BFS 백준 7562 나이트의 이동)https://www.acmicpc.net/problem/75621. 오늘의 학습 키워드BFS백준 7562 나이트의 이동2차원 배열에서의 최단 경로 탐색2. 공부한 내용# 나이트가 이동할 수 있는 8가지 방향을 정의dx = [-2, -1, 1, 2, 2, 1, -1, -2]dy = [1, 2, 2, 1, -1, -2, -2, -1]def BFS(start_x, start_y, destination_x, destination_y, I): queue = deque() queue.append((start_x, start_y)) # 체스판 크기만큼의 2차원 배열 생성 graph = [[0] * I..
99클럽 코테 스터디 8일차 TIL + DFS(백준 2644)1. 오늘의 학습 키워드백준 2644 촌수계산DFS2. 공부한 내용 정리2.1. 구현 내용전체적인 구현 구조는 DFS의 기본 틀과 유사그래프 구현: 인접 리스트를 사용하여 각 사람 간의 관계를 양방향으로 저장방문 배열: visited 배열은 방문 체크와 동시에 촌수를 저장하는 용도로 사용DFS 구현:목표 노드 도달 시 현재까지의 촌수 반환연결된 노드들을 재귀적으로 탐색하며 촌수 계산경로가 없는 경우 -1 반환2.2. 전체 코드import sysinput = sys.stdin.readline# 입력 받기n = int(input()) # 전체 사람 수a, b = map(int, input().split()) # 촌수를 계산해야 하는 두 사람m ..