반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 밑바닥부터 시작하는 딥러닝
- 밑시딥2
- 안드로이드 구조
- gradiant descent
- 예측선
- 모두의 딥러닝
- 안드로이드
- k겹 교차검증
- andoriod with kotlin
- 과적합
- 로지스틱 회귀법
- 밑시딥
- 보이스피싱
- 면접왕이형
- 학습 자동 중단
- 면접왕 이형
- 다중분류
- nlp
- 경제신문스크랩
- GPT-3
- 베스트 모델
- 선형회귀
- ESG
- 경사하강법
- ESG 채권
- 뉴로 심볼릭
- 코틀린
- 독서 #독서후기 #피로사회 #행동과잉 #긍정과잉
- MRC
- 딥페이크
Archives
- Today
- Total
Practice makes perfect!
[백준] 2178 미로 탐색 - python 본문
- 문제 링크 : https://www.acmicpc.net/problem/2178
- 접근 방법 : 처음엔 이동에 제약이 있는 경우라고 생각해 DFS로 풀었다. 예제 입력은 다 맞았지만 DFS는 모든 노드를 다 탐색하기 때문에 시간이 오래 걸려 런타임 에러가 떴다. 다시 문제를 읽어보니 '지나는 최소 칸 수' 즉 최단거리를 구하는 문제였다. 최단거리는 BFS로 접근해야하고, 인접한 경로의 거리를 업데이트하는 식으로 코드를 작성하였다.
# DFS 사용, 런타임 에러 발생
n, m = map(int, input().split())
graph = [list(map(int, input())) for _ in range(n)]
visited = [[0] * m for _ in range(n)]
visited[0][0] = 1
dx = [1,-1,0,0]
dy = [0,0,1,-1]
cnt = 0
def dfs(x,y):
for i in range(4):
nx, ny = x + dx[i], y + dy[i]
if 0<=nx<n and 0<=ny<m and graph[nx][ny]==1:
if visited[nx][ny] == 0 or visited[nx][ny] > visited[x][y] + 1:
visited[nx][ny] = visited[x][y] + 1
if nx == n-1 and ny ==m-1:
return
dfs(nx,ny)
return
dfs(0,0)
print(visited[n-1][m-1])
# BFS 사용, 모든 노드를 방문하는 것이 아니기 때문에 시간 적게 소요됨
from collections import deque
n, m = map(int, input().split())
graph = [list(map(int, input())) for _ in range(n)]
visited = [[0] * m for _ in range(n)]
dx = [1,-1,0,0]
dy = [0,0,1,-1]
cnt = 0
def bfs(x, y):
q = deque([(x,y)])
visited[x][y] = 1
while q:
x, y = q.popleft()
for i in range(4):
nx, ny = x + dx[i], y + dy[i]
# if문 하나에서 여러 조건을 확인하는 것 보다 아래처럼 쪼개는 것이 속도가 빠름
if 0<=nx<n and 0<=ny<m and graph[nx][ny]==1:
if visited[nx][ny] == 0 or visited[nx][ny] > visited[x][y] + 1:
q.append((nx, ny))
visited[nx][ny] = visited[x][y] + 1
return
반응형
'Coding test > BFS&DFS' 카테고리의 다른 글
[백준] 2606 바이러스 - python (0) | 2022.01.07 |
---|---|
[백준] 1303 전쟁 - python (0) | 2021.06.26 |
BFS & DFS 문제 구분 (0) | 2021.06.26 |
Comments