본문 바로가기

분류 전체보기82

[백준] 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.
[백준] 2667번: 단지번호붙이기 파이썬 https://www.acmicpc.net/problem/2667bfs로 탐색할때마다 갯수 세고, 집 수 세면 끝.import sysfrom collections import dequedef bfs(x,y): q = deque([(x,y)]) arr[x][y] = -1 house_count = 1 while q: x,y = q.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0  bfs문제는 많이 나오니까 관련 문제를 익숙해질때까지 많이 풀어야겠다. 2024. 6. 25.