GitHub ID : soohyun-dev
윤수현의 개발 공간
GitHub ID : soohyun-dev
전체 방문자
오늘
어제
  • 분류 전체보기 (918)
    • 성장기록 (49)
      • 성장기록 (3)
      • 우아한테크코스 (16)
      • 프로젝트 (15)
      • TIL (14)
      • 테오의 스프린트 (1)
    • 프로그래밍언어 (88)
      • C언어 (14)
      • HTML\CSS (12)
      • JavaScript (7)
      • React (23)
      • Python (11)
      • JAVA (14)
      • TypeScript (6)
    • 알고리즘 공부 (736)
      • 코드업 - 파이썬 (108)
      • 백준 - 파이썬 (468)
      • 백준 - 자바스크립트 (125)
      • 프로그래머스 - 파이썬 (1)
      • 프로그래머스 - 자바스크립트 (34)
    • 책 리뷰 (9)
      • 프로그래밍 (3)
      • 독서 (6)
    • 전자기기 (1)
    • 일상, 일기 (18)
    • 기술 세미나 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준풀이
  • 영어독해
  • 코딩
  • 코드업파이썬
  • PYTHON
  • 프로그래머스
  • 코드업
  • 백준
  • 자바스크립트
  • 프로그래밍언어
  • 영어
  • 파이썬
  • 프론트엔드
  • 코테
  • 프로그래머스풀이
  • javascript
  • 백준파이썬
  • 독해
  • 코딩테스트
  • 프로그래머스자바스크립트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
GitHub ID : soohyun-dev

윤수현의 개발 공간

백준/ Gold 5 문제 , 백준 파이썬 6593 , 상범 빌딩 [BFS]
알고리즘 공부/백준 - 파이썬

백준/ Gold 5 문제 , 백준 파이썬 6593 , 상범 빌딩 [BFS]

2022. 8. 8. 11:23

백준/ Gold 5 문제 , 백준 파이썬 6593 , 상범 빌딩 [BFS]

 

Check Point !   ( 해당사항 ✓체크 )

1. 막힘 없이 수월하게 풀린 문제인가?

2. 1시간이내로 풀렸던 문제인가?

3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?

4. 시간을 써도 도무지 풀 수 없는 문제인가?

5. 솔루션을 찾아봤는가?

-------------------------------------------------------------------------------------------
난이도 체감
1. 최상
2. 상
3. 중
4. 하


<이해도>
1. 완벽히 이해
2. 다소 헷갈리는 부분들이 있음
3. 이해 못함


<덧붙일 말>
층이 생긴거 말고는 특별한 문제는 아니다. 대신 입력 받을때 개행 처리에 주의

 

풀이 시간

 

 

문제 출처

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

 

6593번: 상범 빌딩

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

www.acmicpc.net

 

 

풀이

 

 

1. 기본 세팅

 

 

1. 상하좌우

 

2. 위아래

 

3. 0 0 0이 입력될때까지 테스트케이스 돌리기

 

4. L,R,C 입력

 

5. 3차원 배열 MAP 리스트 입력받기 (개행도 같이 입력받아 처리)

 

2. BFS 

 

상하좌우와 위아래를 따로 분류해서 처리.

 

이전 값보다 1씩 증가시켜주면서 이동시키고 E를 만날시에 이전값보다 1 큰값을 리턴시키면됨.

 

만약 for문 내에서 리턴이 안되고 while 문을 빠져나왔다면 E에 다가갈수없는 상태이므로 False 리턴

 

 

 

 

3. BFS 호출및 처리

 

S를 만나면 BFS 호출

 

리턴된 값에 맞게 print 값 처리

 

 

 

정답

 

from collections import deque
import sys
input=sys.stdin.readline

vertical=[1,-1,0,0]
parallel=[0,0,1,-1]
upDown=[1,-1]

while True:
    L,R,C=map(int,input().rstrip().split())
    if L==0 and R==0 and C==0:
        break
    MAP=[[list(input()) for _ in range(R+1)] for _ in range(L)]
    
    def bfs(z,x,y):
        dq=deque()
        dq.append([z,x,y])
        MAP[z][x][y]=0
        while dq:
            Z,X,Y=dq.popleft()
            for i in range(4):
                mx,my=X+vertical[i],Y+parallel[i]
                if 0<=Z<L and 0<=mx<R and 0<=my<C:
                    if MAP[Z][mx][my]=='.':
                        MAP[Z][mx][my]=MAP[Z][X][Y]+1
                        dq.append([Z,mx,my])
                    if MAP[Z][mx][my]=='E':
                        return MAP[Z][X][Y]+1
            for j in range(2):
                mz=Z+upDown[j]
                if 0<=mz<L and 0<=X<R and 0<=Y<C:
                    if MAP[mz][X][Y]=='.':
                        MAP[mz][X][Y]=MAP[Z][X][Y]+1
                        dq.append([mz,X,Y])       
                    if MAP[mz][X][Y]=='E':
                        return MAP[Z][X][Y]+1       
        return False
                             
    for i in range(L):
        for j in range(R):
            for k in range(C):
                if MAP[i][j][k]=='S':
                    result=bfs(i,j,k)
                    if result==False:
                        print('Trapped!')
                    else:
                        print('Escaped in %d minute(s).' %(result))

 

 

 

반응형

'알고리즘 공부 > 백준 - 파이썬' 카테고리의 다른 글

백준/ Gold 4 문제 , 백준 파이썬 12893 , 적의 적 [BFS, 이분그래프]  (0) 2022.08.08
백준/ Gold 4 문제 , 백준 파이썬 1707 , 이분 그래프 [BFS]  (0) 2022.08.08
백준/ Gold 3 문제 , 백준 파이썬 1600 , 말이 되고픈 원숭이 [BFS]  (0) 2022.08.06
백준/ Gold 4 문제 , 백준 파이썬 3055 , 탈출 [BFS]  (0) 2022.08.05
백준/ Silver 1 문제 , 백준 파이썬 1931 , 회의실 배정 [그리디]  (0) 2022.08.05
    '알고리즘 공부/백준 - 파이썬' 카테고리의 다른 글
    • 백준/ Gold 4 문제 , 백준 파이썬 12893 , 적의 적 [BFS, 이분그래프]
    • 백준/ Gold 4 문제 , 백준 파이썬 1707 , 이분 그래프 [BFS]
    • 백준/ Gold 3 문제 , 백준 파이썬 1600 , 말이 되고픈 원숭이 [BFS]
    • 백준/ Gold 4 문제 , 백준 파이썬 3055 , 탈출 [BFS]
    GitHub ID : soohyun-dev
    GitHub ID : soohyun-dev
    환영합니다!😊 이곳은 저의 개발에 관한 내용들을 정리하는 공간입니다. 알고리즘 풀이에도 관심이 많아요. 좋은 하루 되세요~! github : soohyun_dev

    티스토리툴바