본문 바로가기
반응형

BFS3

[백준/Baekjoon 7569] 토마토 파이썬(Python) 풀이 문제 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 문제핵심 기본적으로 BFS문제이며 핵심은 3차원 리스트를 사용해야한다는 것이 핵심이다. -> 위 문제를 풀기전에 https://www.acmicpc.net/problem/7576 이것부터 푸는 것을 추천한다. 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤.. 2023. 8. 14.
[백준/Baekjoon 7576] 토마토 파이썬(Python)풀이 문제 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 문제 핵심 이번 토마토 문제의 경우 전형적인 BFS문제이다. 여기서 고려해야 할 것 먼저 (1) 익은 토마토를 찾고 (2) bfs를 이용하여 빈자리를 제외한 토마토를 익히는 것이다. (3) bfs를 진행후 토마토가 다 익었는지 확인해야한다. 풀이과정 1. M,N과 2차원 토마토를 넣을 tomato = [] 를 선언한다. 2. 좌표를 이용한 bfs이므로 dx, dy를 입력받는다.. 2023. 8. 14.
[백준/Baekjoon 2178] 미로탐색 파이썬(Python) 풀이 문제 문제 핵심 -> 문제를 해결하는데 있어서 중요한 부분은 미로에서 1일 때만 이동이 가능하고 (1,1)에서 출발해 (N,M)까지 이동할 때 지나야하는 최소의 칸 수를 구해야한다. 여기서 입력을 배열형태로 입력을 받을 경우 (0,0)에서 (N-1,M-1)까지로 받아야한다. 그림으로 보기 1인 부분을 지나가야하는 문제에서 DFS 또는 BFS를 고민할 수 있다. 사람마다 자신이 자신있는 것을 선택해서 풀면 되지만 좌표가 나오는 DFS,BFS 문제의 경우 BFS로 푸는것이 더 편하다 위의 그림을 보면 1을 지나갈 때마다 전 방문 칸수 +1를 해준다. 빨간색의 숫자가 지금까지 방문한 칸수가 되는 것이다.) (문제 풀때 위의 입력되어있는 '1' 부분이 DFS함수를 돌면 지금까지 지나온 칸 수로 저장한다고 보면 .. 2023. 8. 8.
728x90
반응형