일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 알고리즘
- 난 분명히 1시에 잘 생각이었는데
- 몰라 뭐가 너무 많아졌어
- Python
- 5기
- activation_function
- O(logN)
- root_directory
- 다 쓰고보니깐
- 백준
- 멋쟁이사자처러후기
- 멋쟁이사자처럼후기
- 선택정렬
- TDB
- 다 쓰고 보니깐 1시 반이야
- ELU
- 멋사
- 또 2시네
- 멋쟁이사자처럼부트캠프
- astreisk
- BOJ
- 23883
- 파이썬
- 2시야
- 데이터분석
- 또 2시야....
- jupyter_notebook
- 정렬
- comprehesion
- 자동_형변환
Archives
- Today
- Total
유사개발자 샤이와 무지
미로 탈출[DFS/BFS] #이것이 코딩테스트다 본문
[문제] 음료수 얼려먹기: 문제 설명
N x M 크기의 직사각형 형태의 미로에 여러 마리의 괴물이 있어 이를 피해 탈출해야 한다.
현재 위치는 (1, 1)이고 미로의 출구는 (N,M)의 위치에 존재하며 한 번에 한 칸씩 이동할 수 있다.
괴물이 있는 부분은 0으로, 괴물이 없는 부분은 1로 표시되어 있다.
미로는 반드시 탈출할 수 있는 형태로 제시된다.
탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하라.
칸을 셀 때는 시작 칸과 마지막 칸을 모두 포함해서 계산한다.
난이도: ●◐○| 풀이시간 30m | 시간제한 1초 | 메모리 128mb
<input case>
첫째 줄에 두 정수 N, M(4 <= N, M <= 200)이 주어진다.다음 N개의 줄에는 각각 M개의 정수(0혹은 1)로 미로의 정보가 주어진다.각각의 수들은 공백 없이 붙어서 입력으로 제시된다.또한 시작 칸과 마지막 칸은 항상 1이다.
<Output case>
첫째 줄에 최소 이동 칸의 개수를 출력한다.
input example | Output example |
5 6 101010 111111 000001 111111 111111 |
10 |
<Idea>
Q1. 이 문제는 미로에서 빠져나가는게 목표니까 깊이 우선 탐색을 하는 편이 이득이겠네
A. 맞지 그럼 이 문제를 풀려면 방향도 부여를 해야하고, 이 값이 판 외부로 벗어나지 않게 해야하네
from collections import deque
n,m=map(int,input().split())
table=[]
now= [0,0]
dir=[(0,-1),(-1,0),(0,1),(1,0)]
count=1
queue=deque()
for _ in range(n):
table.append(list(map(int,input().split())))
while True:
for row, col in dir:
if now[0] + row > n-1 or now[0] + row < 0 or now[1] + col > m-1 or now[1] + col < 0 or table[now[0]+ row][now[1]+ col] <= 0: continue #이미 방문 했었거나 인덱스 범위 밖의 값은 배제해줍니다.
queue.append([now[0]+row, now[1]+col, count+1] )
table[now[0]][now[1]] = -1 #방문 처리
now=queue.popleft() #큐의 첫 값을 다시 가져옵니다.
count=now[2]
if now[0] == n-1 and now[1] == m-1:
print(count)
break
'WIL > algorithm' 카테고리의 다른 글
성적이 낮은 순서로 학생 출력하기 [sorting] #이것이 코딩테스트다 (0) | 2023.04.14 |
---|---|
위에서 아래로 [sorting] #이것이 코딩테스트다 (0) | 2023.04.14 |
음료수 얼려먹기[DFS/BFS] #이것이 코딩테스트다 (0) | 2023.04.14 |
게임 개발[Implement] -2 #이것이 코딩테스트다 (0) | 2023.03.19 |
게임 개발[Implement] -1 #이것이 코딩테스트다 (2) | 2023.03.14 |
Comments