20210423
(왜 이런거지?!!!!)
(이거는 또 왜 이런거지!!!!!?!!)
오늘 도서관 자리가 좀 신기한 게!! 내가 앉은 테이블에 오는 사람들이 죄다죄다..! 잔다..
ㅈㄷㅈㄷㅈㄷㅈㄷㅈㄷㅈㄷㅈㄷㅈㄷㅈㄷ잔다죄다잔다죄다
오늘 취준을 마무리하며라는 블로그 포스팅을 읽었는데, 생각이 많아진다.
준비를 똑바로 하고 있나 싶었는데, 아니었던 것 같다..
(제대로 된 준비를 100이라고 하면 나는 한 20?정도)
그나마 블로그랑 깃에 꾸준히 올리는 거 하나만 제대로 하는 거 같다..
내일 코딩테스트 끝나고 정처기 시험 끝나면 깃헙 리드미 파일 좀 깨끗하게 바꾸고.. CS 공부도 제대로 하고..해야할 것 같다!
오늘 1261번 문제를 풀었는데번 문제를 풀었는데 0-1 너비 우선 탐색 을 이용하는데, 이 블로그 포스팅 글을 읽고 단번에 이해가 가서 잊지 않으려고 한다!!
나는 1261을 우선순위 큐로 해결하려고 했는데, 굳이 우선순위 큐 없이 deque의 메소드를 잘 이용하는 것 같아서 위의 방법이 더 좋다고 느껴졌다.
import sys
from collections import deque
input = sys.stdin.readline
# 가로 크기 m, 세로 크기 n
m, n = map(int, input().split())
# 미로의 상태
maze = [list(map(int, list(input().rstrip()))) for _ in range(n)]
dx = [1, -1, 0, 0]
dy = [0, 0, 1, -1]
visited = [[-1] * m for _ in range(n)]
def bfs():
q = deque()
q.append([0, 0])
visited[0][0] = 0
while q:
_x, _y = q.popleft()
for i in range(4):
x = dx[i] + _x
y = dy[i] + _y
if x < 0 or y < 0 or x >= n or y >= m: continue
if visited[x][y] != -1: continue
if maze[x][y] == 0:
q.appendleft([x, y])
visited[x][y] = visited[_x][_y]
elif maze[x][y] == 1:
q.append([x, y])
visited[x][y] = visited[_x][_y] + 1
bfs()
print(visited[n-1][m-1])
벽을 뚫을 필요가 없으면 appendleft해서 queue에서 바로 꺼낼 수 있도록 했고, 벽을 뚫었다면 append를 해서 뒤로 보내도록 했다.
Author And Source
이 문제에 관하여(20210423), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nayoon-kim/20210423저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)