Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags more
Archives
Today
Total
관리 메뉴

쓰고싶은거 써요

백준 파이썬 6593 상범 빌딩 본문

백준 python 기록

백준 파이썬 6593 상범 빌딩

우히힝 2022. 2. 26. 16:02

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

 

6593번: 상범 빌딩

당신은 상범 빌딩에 갇히고 말았다. 여기서 탈출하는 가장 빠른 길은 무엇일까? 상범 빌딩은 각 변의 길이가 1인 정육면체(단위 정육면체)로 이루어져있다. 각 정육면체는 금으로 이루어져 있어

www.acmicpc.net

 

 

굉장히 노가다를 강요하는 BFS문제였읍니다.

 

하면서 아 변수명좀 제대로 지을걸.. 이라는 생각이 절로 드는 문제였읍니다.

 

from collections import deque

while True:
    L, R, C = map(int,input().split())

    if (L + R + C) == 0:
        exit()

    building = []

    visited = [[[0]*C for _ in range(R)] for _ in range(L)]

    S = []
    E = []
    for _ in range(L):
        building.append([list(input()) for i in range(R)])
        input()

    for z in range(L):
        for x in range(R):
            for y in range(C):
                if building[z][x][y] == "S":
                    S =[x,y,z]
                    visited[z][x][y] = 1
                if building[z][x][y] == "E":
                    E =[x,y,z]

    dx = [-1,1,0,0,0,0]
    dy = [0,0,-1,1,0,0]
    dz = [0,0,0,0,-1,1]

    queue = deque([])
    queue.append(S)
    flag = False

    while queue:
        x,y,z = queue.popleft()

        for i in range(6):
            nx = x + dx[i]
            ny = y + dy[i]
            nz = z + dz[i]

            if 0 <= nx < R and 0 <= ny < C and 0 <= nz < L:
                if visited[nz][nx][ny] == 0:
                    if building[nz][nx][ny] == "." or building[nz][nx][ny] == 'E':
                        visited[nz][nx][ny] = visited[z][x][y] + 1
                        queue.append([nx,ny,nz])


    if visited[E[2]][E[0]][E[1]] == 0:
        print("Trapped!")
    else:
        print("Escaped in %d minute(s)." % (visited[E[2]][E[0]][E[1]]-1))

'백준 python 기록' 카테고리의 다른 글

백준 파이썬 1041 주사위  (0) 2022.04.08
백준 파이썬 11048 이동하기  (0) 2022.04.05
백준 파이썬 9084 동전  (0) 2022.02.23
백준 파이썬 13023 ABCDE  (0) 2022.02.22
백준 파이썬 11000 강의실 배정  (0) 2022.02.20
Comments