glowing713
Frontend-Deep-Dive
glowing713
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
    • Languages (11)
      • JavaScript ๐Ÿ’› (3)
      • Python ๐Ÿ (4)
      • Java โ˜•๏ธ (3)
      • Swift ๐Ÿงก (1)
    • Computer_Science (1)
      • Computer_Network ๐Ÿ•ธ (1)
    • Web_Frontend (4)
      • Vue.js (1)
    • Problem_Solving (76)
    • Server (1)
      • Spring ๐Ÿ€ (1)
    • AI (2)
      • NLP ๐Ÿ—ฃ (1)
      • AI_Math โž— (1)
    • ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊พธ๋ฏธ๊ธฐ โœŒ (1)
    • ์ƒ๊ฐ์ •๋ฆฌ โœ๐Ÿป (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ปGithub

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • binary search
  • c++
  • mst
  • BOJ
  • ๋™์ ๊ณ„ํš๋ฒ•
  • Algorithm
  • boostcampaitech
  • ์ด๋ถ„ํƒ์ƒ‰
  • DP
  • ์นด์นด์˜ค ๊ธฐ์ถœ
  • Java
  • Python
  • ps
  • bfs
  • Baekjoon
  • Stack
  • brute-force
  • 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ์™„์ „ํƒ์ƒ‰

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
glowing713

Frontend-Deep-Dive

[BOJ] ๋ฐฑ์ค€ 7569 ํ† ๋งˆํ†  / BFS
Problem_Solving

[BOJ] ๋ฐฑ์ค€ 7569 ํ† ๋งˆํ†  / BFS

2021. 1. 5. 17:49

์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฌธ์ œ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

 

 

๐Ÿ’ญ ๋ฌธ์ œ ์ดํ•ด

 

์—ญ์‹œ ํƒ์ƒ‰๋ฌธ์ œ๋กœ BFS๋ฅผ ์ด์šฉํ•˜์—ฌ ํ’€์–ด์•ผ ํ•œ๋‹ค.

์—ฌ์„ฏ ๋ฐฉํ–ฅ์œผ๋กœ ๋™์‹œ์— ์ง„ํ–‰ํ•˜๋ฏ€๋กœ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์ด ๋งž๋‹ค๊ณ  ํŒ๋‹จํ•˜์˜€๋‹ค.

 

๋‹ค๋ฅธ ๋ฌธ์ œ์™€ ์ฐจ์ด์ ์ด๋ผ๋ฉด 3์ฐจ์› ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ์•ผ ํ•œ๋‹ค๋Š” ์ ์ธ๋ฐ,

arr[๊นŠ์ด][๊ฐ€๋กœ][์„ธ๋กœ] ์ธ ๊ฒƒ์„ ์œ ์˜ํ•˜์—ฌ์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

 

 

 

๊ตฌํ˜„ ์–ธ์–ด: Python

 

import sys
from collections import deque

# 3์ฐจ์› ๋ฆฌ์ŠคํŠธ๋Š” arr[๊นŠ์ด][๊ฐ€๋กœ][์„ธ๋กœ]๋กœ ๊ตฌ์„ฑ
# col, rol, height
m, n, h = map(int, sys.stdin.readline().rstrip().split())
warehouse = [[list(map(int, sys.stdin.readline().rstrip().split())) for _ in range(n)] for _ in range(h)]
queue = deque()
# ์ƒ ํ•˜ ์ขŒ ์šฐ ์•ž ๋’ค
mx = [-1, 1, 0, 0, 0, 0]
my = [0, 0, -1, 1, 0, 0]
mz = [0, 0, 0, 0, -1, 1]

# ๋ชจ๋“  ํ† ๋งˆํ† ๊ฐ€ ์ต์–ด์žˆ๋Š” ์ƒํƒœ ์ฒดํฌ
all_ripen = True
for level in warehouse:
    for row in level:
        if 0 in row:
            all_ripen = False

if all_ripen:
    print(0)
    sys.exit()


last_val = 0
for k in range(h):
    for i in range(n):
        for j in range(m):
            if warehouse[k][i][j] == 1:
                queue.append((k, i, j))

while queue:
    z, x, y = queue.popleft()
    for t in range(6):
        nx = x + mx[t]
        ny = y + my[t]
        nz = z + mz[t]
        if 0 <= nx < n and 0 <= ny < m and 0 <= nz < h:
            if warehouse[nz][nx][ny] == 0:
                warehouse[nz][nx][ny] = warehouse[z][x][y] + 1
                last_val = warehouse[nz][nx][ny]
                queue.append((nz, nx, ny))


# ์ž‘์—… ๋๋‚œ ํ›„ ํ† ๋งˆํ†  ์ƒํƒœ ์ฒดํฌ
all_ripen = True
for level in warehouse:
    for row in level:
        if 0 in row:
            all_ripen = False

if not all_ripen:
    print(-1)
else:
    # ์‹œ์ž‘์ผ์„ ํฌํ•จํ•œ ๊ฐ’์ด๋ฏ€๋กœ -1
    print(last_val - 1)
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ] ๋ฐฑ์ค€ 12851 ์ˆจ๋ฐ”๊ผญ์งˆ 2 / BFS  (0) 2021.01.12
[BOJ] ๋ฐฑ์ค€ 1697 ์ˆจ๋ฐ”๊ผญ์งˆ / BFS  (0) 2021.01.07
[BOJ] ๋ฐฑ์ค€ 2644 ์ดŒ์ˆ˜๊ณ„์‚ฐ / BFS, DFS  (0) 2021.01.05
[BOJ] ๋ฐฑ์ค€ 2667 ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ / BFS, DFS  (0) 2021.01.04
[BOJ] ๋ฐฑ์ค€ 2887 ํ–‰์„ฑ ํ„ฐ๋„ / ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST), ํฌ๋ฃจ์Šค์นผ  (0) 2020.11.21
    'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [BOJ] ๋ฐฑ์ค€ 12851 ์ˆจ๋ฐ”๊ผญ์งˆ 2 / BFS
    • [BOJ] ๋ฐฑ์ค€ 1697 ์ˆจ๋ฐ”๊ผญ์งˆ / BFS
    • [BOJ] ๋ฐฑ์ค€ 2644 ์ดŒ์ˆ˜๊ณ„์‚ฐ / BFS, DFS
    • [BOJ] ๋ฐฑ์ค€ 2667 ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ / BFS, DFS
    glowing713
    glowing713

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