Algorithms and Languages/알고리즘 파이썬 문제풀이 (35) 썸네일형 리스트형 [Python/백준] 7569. 토마토 3차원 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기DFS/BFShttps://www.acmicpc.net/problem/7569풀이유사 3차원 실제는 2차원 풀이from collections import dequeimport sysinput = sys.stdin.readlineM, N, H = map(int, input().split())# 아래 반복문 list comprehension으로 개선하기!!box = []for _ in range(N * H): box.append(list(map(int, input().split())))# 층을 고정한 상태에서, 행을 고정한 상태에서, 열을 기준으로 먼저 돌린다!!queue = deque((i.. [Python/백준] 7576. 토마토 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기DFS/BFShttps://www.acmicpc.net/problem/7576풀이from collections import dequeimport sysinput = sys.stdin.readline# 격자 상태의 상자들과 토마토 정보 주어졌을 때,# 며칠이 지나면 토마토들이 모두 익는지, 그 최소 일수를 구하는 프로그램 작성.# 입력 : 첫 줄에는 상자의 크기 N x M 정수 -> 둘 곱하면 100만 크기# 둘째 줄부터 : 하나의 상자에 저장된 토마토들의 정보# 1: 익은 토마토, 0: 아직 안 익은 토마토, -1: 토마토가 없는 칸(벽)# 1이 0을 전염시키면서 1로 만듦.M, N = map.. [Python/DailyAlgo] 65. 산불 조심 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기DFS/BFShttps://dailyalgo.kr/ko/problems/65풀이처음 푼 풀이(실패)from collections import dequedef solution(mountain): n = len(mountain) counts = 0 # 2. 상하좌우 델타값 정의 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(fires): nonlocal counts queue = deque() for fire in fires: queue.append(fire) .. [Python/백준] 2667. 단지번호붙이기 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기더보기DFS/BFShttps://www.acmicpc.net/problem/2667풀이처음 푼 풀이import sysinput = sys.stdin.readline# 그래프의 연결 요소의 개수를 출력하고# 각 연결 요소에 속한 노드 개수를 오름차순 출력하면 됨.# 입력은 총 단지수와, 단지내 집의 유무 오름차순def dfs(x, y): count = 1 for k in range(4): nx = x + dx[k] ny = y + dy[k] if 0 # 풀이2) dfs를 좀 더 직관적으로 짜 보았음.import sysinput = sys.stdin.. [Python/DailyAlgo] 63. 미로 찾기 2 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기DFS/BFShttps://dailyalgo.kr/ko/problems/63풀이DFS 풀이 -> 시간초과# DFS 풀이def solution(maze): # 직전 칸까지의 거리도 넣어줘야함. def dfs(x, y, distance): for i in range(4): nx, ny = x + dx[i], y + dy[i] if 0 BFS 풀이# BFS 풀이from collections import dequedef solution(maze): # 얘는 재귀가 아니고 한 번만 호출되니까, def bfs(): #.. [Python/DailyAlgo] 62. 미로 찾기 1 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기DFS/BFShttps://dailyalgo.kr/ko/problems/62풀이DFS 풀이# DFS# 코테 수준에서는, 재귀 호출 깊이를 1000을 초과하지 않게 냄.# 왜냐면 자바나 C++은 걍 초과해버려서. # 근데 이런 백준 이런건 이렇게 재취 깊이가 1000이 넘어가는 문제를 내기도 함.# 따라서, 그냥 풀면 `Recursionerror`가 나옴.import syssys.setrecursionlimit(10**6)def solution(maze): def dfs(x, y): # 3. 이동하기 for i in range(4): nx, ny.. [Python/백준] 2606. 바이러스 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기더보기https://www.acmicpc.net/problem/2606풀이import sysinput = sys.stdin.readline# 그래프 탐색 알고리즘 기본 문제.n = int(input())m = int(input())graph = [[] for _ in range(n + 1)]for _ in range(m): s, e = map(int, input().split()) graph[s].append(e) graph[e].append(s)def dfs(node): # 2. 재귀하며 현재 정점 action 실행 global counts counts += .. [Python/DailyAlgo] 28. 그래프 탐색 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기DFS/BFShttps://dailyalgo.kr/ko/problems/28풀이DFS 풀이# counts 쓴 버전def solution(n, edges): def dfs(node): # 지금 있는 위치가 local인데, # 그 local보다 한 레이어 바깥에 있는, # 즉 nonlocal한 변수인 counts를 여기서 가져와 쓰겠다는 거 # 두 레이어 바깥에 있었다면 global을 썼어야 함. nonlocal counts counts += 1 # 우리는 dfs에 그 노드가 호출된 것 자체가 .. 이전 1 2 3 4 5 다음