본문 바로가기

PS38

[백준] 2206번: 벽 부수고 이동하기 파이썬 https://www.acmicpc.net/problem/2206 어렵다벽을 한번은 부술수있는데이걸 어떻게 구현해야할지 도저히 떠오르지 않아서...힌트글 에서 3차원 배열로 방문여부까지 큐에 저장해야한다는 걸 보고 겨우 풀었다. 풀이import sysfrom collections import dequedx = [1, 0, -1, 0]dy = [0, 1, 0, -1]def bfs(): q = deque() q.append((0, 0, 0)) # x, y, 벽 파괴 여부 dist[0][0][0] = 1 while q: x, y, z = q.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0  이동칸을 .. 2024. 6. 26.
[백준] 7562번: 나이트의 이동 https://www.acmicpc.net/problem/7562 bfs문제인데 탐색을 나이트가 이동할 수있는 칸으로 하면된다. 이거 풀다가 바보 같이 헤멨다여기서 체스판 가로세로 길이를 i로 주는데바보 같이 bfs 함수내에서 for문을 i로 돌림......................바본가 풀이import sysfrom collections import dequedx = [-1, -2, 1, 2, -1, -2, 1, 2]dy = [2, 1, 2, 1, -2, -1, -2, -1]def knight(fx,fy,gx,gy): if fx == gx and fy == gy: return 0 q = deque() q.append((fx,fy)) chess[fx][fy] = 0 while q: .. 2024. 6. 26.
[백준] 10026번: 적록색맹 파이썬 https://www.acmicpc.net/problem/10026쉽다.그냥 bfs를 두번 쓰면된다. 근데 적록색맹인 경우를 처리하는 방법이 여러가지일거같은데그냥 배열에서 R을 G로 바꿔버린 후 bfs를 하는 방법도있고.... 나는 그냥 bfs에 조건 추가해서 구현했다. import sysfrom collections import dequedx = [1, -1, 0, 0]dy = [0, 0, 1, -1]def bfs(a, b, check): q = deque() q.append((a, b)) dis[a][b] = 1 while q: x, y = q.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0.. 2024. 6. 25.
[백준]4179번: 불! 파이썬 https://www.acmicpc.net/problem/4179 문제 설명미로 속에서 지훈이가 화재로부터 도망쳐야 한다. 미로의 크기와 구성은 주어지며, 지훈이는 미로의 가장자리로 탈출해야 한다. 불(F)은 매 초마다 확산되며, 지훈이는 불보다 먼저 가장자리에 도착해야 탈출할 수 있다.  풀이import sysfrom collections import dequedx = [1, 0, -1, 0]dy = [0, 1, 0, -1]def bfs(check): while q: x, y = q.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0  이 문제에서 유의할 점은 지훈이와 불이 동시에 움직인다는 것이다.그.. 2024. 6. 25.