[๋ฐฑ์ค€] 7569 ํ† ๋งˆํ†  (python ํŒŒ์ด์ฌ)

2022. 6. 14. 03:57ยท๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

https://www.acmicpc.net/problem/7569

 

7569๋ฒˆ: ํ† ๋งˆํ† 

์ฒซ ์ค„์—๋Š” ์ƒ์ž์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ์ •์ˆ˜ M,N๊ณผ ์Œ“์•„์˜ฌ๋ ค์ง€๋Š” ์ƒ์ž์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” H๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. M์€ ์ƒ์ž์˜ ๊ฐ€๋กœ ์นธ์˜ ์ˆ˜, N์€ ์ƒ์ž์˜ ์„ธ๋กœ ์นธ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋‹จ, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100,

www.acmicpc.net

 

ํ’€์ด ๊ณผ์ •

์ €๋ฒˆ์— ํ‘ผ ํ† ๋งˆํ†  ๋ฌธ์ œ์™€ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜๋‹ค. ์ฐจ์ด์ ์€ z์ถ•์ด ์ƒ๊น€.

๋ฌธ์ œ์—์„œ M,N,H ์ตœ๋Œ€๊ฐ’์ด ๋ชจ๋‘ 100์œผ๋กœ ํฐ์ˆ˜๊ฐ€ ์•„๋‹ˆ์—ฌ์„œ ๊ทธ๋ƒฅ 3์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋”ฐ๋ผ์„œ z์ถ• ๊ด€๋ จ๋œ ๋ถ€๋ถ„๋งŒ ์ด์ „ ๋ฌธ์ œ์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. ์ด์ „ ๋ฌธ์ œ ํ’€์ด์— ๋Œ€ํ•œ ์ •๋ณด๋Š” 7576-ํ† ๋งˆํ†  ์ฐธ์กฐ

 

import sys
from collections import deque
input = sys.stdin.readline
dz = [1, -1, 0, 0, 0, 0] # ์œ„, ์•„๋ž˜, ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ, ์•ž, ๋’ค
dy = [0, 0, 0, 0, -1, 1]
dx = [0, 0, -1, 1, 0, 0]

M, N, H = map(int,input().rstrip().split())

tomato_box = [[[] for _ in range(N)] for _ in range(H)] #z, y, x ์ขŒํ‘œ
day = [[[0 for _ in range(M)] for _ in range(N)] for _ in range(H)]
tomato = deque()

for i in range(H):
    for j in range(N):
        tomato_box[i][j].extend([int(x) for x in input().rstrip().split()])
        for k in range(M):
            if tomato_box[i][j][k] == 1:
                tomato.append([i,j,k])

def bfs():

    while tomato:
        t = tomato.popleft()
        z, y, x = t[0], t[1], t[2]
        for i in range(6):
            nz, ny, nx = z + dz[i], y + dy[i], x + dx[i]
            if 0 <= nz < H and 0 <= ny < N and 0 <= nx < M:
                if tomato_box[nz][ny][nx] == 0:
                    tomato_box[nz][ny][nx] = 1
                    day[nz][ny][nx] = day[z][y][x] + 1
                    tomato.append([nz,ny,nx])

bfs()
zeroflag = False
resultday = 0
for i in range(H):
    for j in range(N):
        for k in range(M):
            if tomato_box[i][j][k] == 0:
                zeroflag = True
            if resultday < day[i][j][k]:
                resultday = day[i][j][k]

if zeroflag:
    print(-1)
else:
    print(resultday)

 

 

'๐Ÿงฉ Problem Solving > [๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 10026 ์ ๋ก์ƒ‰์•ฝ(python ํŒŒ์ด์ฌ)  (0) 2022.06.15
[๋ฐฑ์ค€] 1655 ๊ฐ€์šด๋ฐ๋ฅผ๋งํ•ด์š” (python ํŒŒ์ด์ฌ)  (0) 2022.06.14
[๋ฐฑ์ค€] 13549 ์ˆจ๋ฐ”๊ผญ์งˆ3 (python ํŒŒ์ด์ฌ)  (0) 2022.06.13
[๋ฐฑ์ค€] 2252 ์ค„์„ธ์šฐ๊ธฐ (python ํŒŒ์ด์ฌ)  (0) 2022.06.11
[๋ฐฑ์ค€] 11718 ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๊ธฐ (python ํŒŒ์ด์ฌ)  (0) 2022.06.10
'๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 10026 ์ ๋ก์ƒ‰์•ฝ(python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 1655 ๊ฐ€์šด๋ฐ๋ฅผ๋งํ•ด์š” (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 13549 ์ˆจ๋ฐ”๊ผญ์งˆ3 (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 2252 ์ค„์„ธ์šฐ๊ธฐ (python ํŒŒ์ด์ฌ)
์ œ๋ด‰์•„
์ œ๋ด‰์•„
  • ์ œ๋ด‰์•„
    Overthinking
    ์ œ๋ด‰์•„
    fake it till you make it.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿงฉ Problem Solving (83)
        • [๋ฐฑ์ค€] (74)
        • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] (7)
        • [SW Expert Academy] (1)
        • [์•Œ๊ณ ๋ฆฌ์ฆ˜ for PS] (1)
      • ๐Ÿ“ฆ Data Structure (2)
      • ๐Ÿ“œ Language (14)
        • [python] (14)
      • ๐Ÿ–ค Git (1)
      • ๐ŸŒ† ์ผ์ƒ (2)
        • ๐Ÿ’ฌ ๋ฒฝ๋ณด๊ณ  ๋งํ•˜๊ธฐ (2)
      • ๐Ÿ—„๏ธ ๊ธฐํƒ€ (2)
      • ๐Ÿ”ต css (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ •์ฒ˜๊ธฐ
    ํŒŒ์ด์ฌ
    DFS
    ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ
    SWEA
    ๋ถ„ํ•  ์ •๋ณต
    ๋‹ค์ต์ŠคํŠธ๋ผ
    ์œ„์ƒ์ •๋ ฌ
    imos
    ๋ถ€๋ถ„ํ•ฉ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๋ƒ…์ƒ‰
    ๊ตฌํ˜„
    BFS
    ๋ฐ๋ธŒ์ฝ”์Šค
    Python
    ๋ฐฑ์ค€
    slicing
    ํ”Œ๋กœ์ด๋“œ์›Œ์…œ
    ๋ˆ„์ ํ•ฉ
    ํˆฌํฌ์ธํ„ฐ
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    Bruteforce
    ๋ฐฑํŠธ๋ž˜ํ‚น
    boj
    ๊ทธ๋ฆฌ๋””
    ์žฌ๊ท€
    ์Šคํƒ
    DP
    ํŒฐ๋ฆฐ๋“œ๋กฌ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ œ๋ด‰์•„
[๋ฐฑ์ค€] 7569 ํ† ๋งˆํ†  (python ํŒŒ์ด์ฌ)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”