-
[λ°±μ€] 3187 μμΉκΈ° κΏ with PythonPS 2022. 3. 14. 23:23728x90λ°μν
π BOJ 3187 μμΉκΈ° κΏ
π‘ 쑰건
κ°μ μΈν리 μμ μμ μλ€μ μ«μκ° λλμ μ«μλ³΄λ€ λ λ§μ κ²½μ° λλκ° μ λΆ μ‘μλ¨Ήνλ€. λ¬Όλ‘ κ·Έ μΈμ κ²½μ°λ μμ΄ μ λΆ μ‘μλ¨Ήνλ€.
λ§μ½ λΉ κ³΅κ°μ '.'(μ )μΌλ‘ λνλ΄κ³ μΈν리λ₯Ό '#', λλλ₯Ό 'v', μμ 'k'λΌκ³ λνλΈλ€λ©΄ λͺλ§λ¦¬μ μκ³Ό λλκ° λ¨μμλκ°?
μΈνλ¦¬λ‘ λ§νμ§ μμ μμμλ μκ³Ό λλκ° μμΌλ©° μκ³Ό λλλ λκ°μ μΌλ‘ μ΄λν μ μλ€.
μμμ μΈλ‘μ κ°λ‘μ κΈΈμ΄λ₯Ό λνλ΄λ λ κ°μ μ μ R, C (3 β€ R, C β€ 250)
BFS μ νμ λ¬Έμ
π₯ μμ€ μ½λ
from collections import deque from sys import stdin board = [] n, m = map(int, stdin.readline().split()) for i in range(n): board.append(list(stdin.readline().rstrip())) dx, dy = [1, -1, 0, 0], [0, 0, 1, -1] visited = set() def bfs(x, y): wolf, sheep = 0, 0 if board[x][y] == 'k': sheep += 1 elif board[x][y] == 'v': wolf += 1 q = deque() q.append((x, y)) visited.add((x, y)) while q: x, y = q.popleft() for i in range(4): nx, ny = dx[i] + x, dy[i] + y if -1 < nx < n and -1 < ny < m: if (nx, ny) not in visited: if board[nx][ny] == 'k': sheep += 1 q.append((nx, ny)) visited.add((nx, ny)) elif board[nx][ny] == 'v': wolf += 1 q.append((nx, ny)) visited.add((nx, ny)) elif board[nx][ny] == '.': q.append((nx, ny)) visited.add((nx, ny)) if wolf >= sheep: return wolf, 'w' else: return sheep, 's' ans = [0, 0] for i in range(n): for j in range(m): if board[i][j] != '#' and (i, j) not in visited: res, win = bfs(i, j) if win == 's': ans[0] += res else: ans[1] += res print(*ans)
π μμ λ° μ€νκ²°κ³Ό
μμ
6 6 ...#.. .##v#. #v.#.# #.k#.# .###.# ...###
μ€νκ²°κ³Ό
0 2
β¨οΈ λ¬Έμ νμ΄
μκ³Ό λλμ μΈν리 μ 보λ₯Ό μ λ ₯λ°μ boardμ μ μ₯νλ€.
맡μ μννλ©΄μ μΈνλ¦¬κ° μλλ©°, (i, j) μ’νκ° λ°©λ¬Ένμ§ μμ μ’νλΌλ©΄ bfs ν¨μλ₯Ό νΈμΆνλ€.
kμΌ λμ vμΌ λ, .μΌ λ νμ μ§μ΄λ£κ³ , λ°©λ¬Έμ²λ¦¬λ₯Ό ν΄μ€λ€.
kμΌ λλ sheep λ³μμ 1μ λνκ³ , vμΌ λλ wolf λ³μμ 1μ λν΄μ€λ€.
λ§μ½ λλμ μκ° λ§λ€λ©΄ wolf, 'w' λ₯Ό λ°ννκ³
λ§μ½ μμ μκ° λ§γ·λλ©΄ sheep, 's' μ λ°ννλ€.λ°νλ°μ κ²°κ³Όμ λ°λΌμ μκ³Ό λλμ μλ₯Ό ansμ κ°κ° μ μ₯νλ€.
ansλ μλΆν° μκ³Ό λλμ μλ€.
πΎ λλμ
- BSFλ₯Ό μ¬μ©νλ λ¬Έμ μμ΅λλ€. μ΄μ κ°μ μ νμ΄ μκ·Όν λ§μ μ°μ΅νκΈ° μ’μ λ¬Έμ λΌκ³ μκ°ν©λλ€.
λ°μν'PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 10166 κ΄μ€μ with Python (0) 2022.03.16 [λ°±μ€] 5698 Tautogram with Python (0) 2022.03.16 [λ°±μ€] 2493 ν with Python (0) 2022.03.14 [λ°±μ€] 2096 λ΄λ €κ°κΈ° with Python (0) 2022.03.12 [λ°±μ€] 1531 ν¬λͺ with Python (0) 2022.03.12