본문 바로가기

전체 글82

[백준] 7569번: 토마토(3차원) 파이썬 https://www.acmicpc.net/problem/7569 유명한 토마토 문제근데 3차원인. 첫째 줄에 상자의 크기를 나타내는 M, N, H가 주어지고 각 줄마다 상자에 들어있는 토마토 상태가 주어짐:1: 익은 토마토0: 익지 않은 토마토-1: 토마토가 들어있지 않은 칸우리가 해야 할 일은 모든 토마토가 다 익을 때까지 며칠이 걸리는지 구하는 거임. 만약 처음부터 모든 토마토가 다 익어있으면 0을 출력하고, 토마토가 다 익지 못하면 -1을 출력하면 됨.   풀이 import sysfrom collections import deque# 방향 벡터 (상, 하, 좌, 우, 위, 아래)dx = [1, 0, -1, 0, 0, 0]dy =[0, 1, 0, -1, 0, 0]dz = [0, 0, 0, 0, 1,.. 2024. 6. 24.
[백준] 24483번, 24484번 : 알고리즘 수업 - 깊이 우선 탐색 5, 6 파이썬 https://www.acmicpc.net/problem/24483https://www.acmicpc.net/problem/2448424483번 풀이 (알고리즘 수업 - 깊이 우선 탐색 5)알고리즘 수업 - 깊이 우선 탐색 1, 3(24479번, 24481번) 두 문제에서 출력하는 값을 그냥 곱해서 합한후 출력하기만 하면된다. 24483번 코드import syssys.setrecursionlimit(10**9)def dfs(r, d): global cnt visited[r] = cnt depth[r] = d line[r].sort() #오름차순으로 정렬 for i in line[r]: if visited[i] == 0: cnt+=1 dfs(i, d +1)n,m,r =map.. 2024. 6. 22.
[백준] 24481번, 24482번 : 알고리즘 수업 - 깊이 우선 탐색 3, 4 파이썬 https://www.acmicpc.net/problem/24481https://www.acmicpc.net/problem/24482 24481번 풀이 (알고리즘 수업 - 깊이 우선 탐색 3)dfs를 이용해서 그래프를 탐색하는 문제dfs를 수행할때 각 노드에 연결된 노드를 오름차 순으로 방문해야한다!모든 노드의 깊이(depth)를 출력!시작 정점 R의 깊이는 0이고 방문 되지 않는 노드의 깊이는 -1로 출력하자. 24481번 코드import syssys.setrecursionlimit(10**9)def dfs(r, depth): visited[r] = depth line[r].sort() #오름차순으로 정렬 for i in line[r]: if visited[i] == -1: dfs(.. 2024. 6. 22.
[백준] 24479번, 24480번 : 알고리즘 수업 - 깊이 우선 탐색 1, 2 파이썬 https://www.acmicpc.net/problem/24479https://www.acmicpc.net/problem/244780  24479번 풀이 (알고리즘 수업 - 깊이 우선 탐색 1) dfs를 이용해서 그래프를 탐색하는 문제dfs를 수행할때 각 노드에 연결된 노드를 오름차 순으로 방문해야한다! 24479번 코드import sys# 재귀 깊이 한도를 크게 설정sys.setrecursionlimit(10**9)def dfs(r): global cnt visited[r] = cnt line[r].sort() #오름차순으로 정렬 for i in line[r]: if visited[i] == 0: cnt+=1 dfs(i)n, m, r = map(int, sys.stdin.. 2024. 6. 19.