itisjustK
코딩과 사람 사는 이야기
itisjustK
전체 방문자
오늘
어제
  • 분류 전체보기 (207)
    • 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠.. (0)
    • Web (43)
      • html & css (9)
      • django & python (15)
      • java script (9)
    • iOS (51)
      • Swift (42)
      • SwiftUI (5)
    • CS (25)
      • 자료구조 (6)
      • 운영체제 (3)
      • 데이터베이스 (9)
      • 네트워크 (7)
    • PS (34)
      • 알고리즘 & 자료구조 (0)
    • Life (36)
    • Retrospective (15)
    • Book (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개발자
  • AppleDevloperAcademy
  • 연결리스트
  • CoreData
  • 점주
  • nosql
  • binding
  • POSTECH
  • SWIFT
  • 어플
  • 생활코딩
  • mongodb
  • 킨디
  • crud
  • SwiftUI
  • 독립서점
  • 생활코딩 #이고잉 #HTML #코딩 #개발자
  • ios
  • 세그멘테이션
  • CS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
itisjustK

코딩과 사람 사는 이야기

[ 백준 2178 - 미로탐색 ] - bf
PS

[ 백준 2178 - 미로탐색 ] - bf

2021. 8. 6. 19:00

 


 

  • 단위벡터 사용하여 상하좌우 이동하기
dx = [1,-1,0,0]
dy = [0,0,1,-1]

for i in range(4):
    nx = x + dx[i]
    ny = y + dy[i]

 

  • bfs를 어떻게 사용하여 최단 경로를 도출하는가?

- queue 자료구조 자체가 일단 최단 경로를 뽑아내는 데에 사용된다.

- 이를 어떻게 사용하는가 함은 '이동하는 곳 = 이전 위치의 수 + 1'

- 이동할 때마다 1씩 수가 증가될 것이다 = 거리의 수

- queue와 popleft를 이용하여 이동이 진행되기 때문에 자연스레 목표 지점에는 최단 거리의 수가 구해질 것 

def bfs(x,y): 

...
..

    while queue:
        x,y = queue.popleft()
        for i in range(4):
            nx = x + dx[i]
            ny = y + dy[i]
            if nx >= 0 and nx <= 가로 and ny >= 0 and ny <= 세로:
                if graph[nx][ny] == 1:
                    graph[nx][ny] = graph[x][y] + 1
                    queue.append((nx,ny))

 

  • 방문 체크는 어떻게 이루어지나?

- 이동한 지점의 값이 1이다 = 아직 방문하지 않은 곳

- 이동한 지점의 값이 1이 아니다 = 방문했던 곳

 

왜 1인지 아닌지로 판단하나?

- 이동했던 곳은 전부 거리만큼 수가 더해져있도록 코드를 짜놨기 때문

저작자표시 (새창열림)

'PS' 카테고리의 다른 글

DP ( Dynamic Programming, 동적 계획법 )  (0) 2021.08.09
[ 프로그래머스 - 타켓 넘버 ] DFS  (0) 2021.08.06
7주차 [ 음료수 얼려 먹기 ]  (0) 2021.08.06
7주차 [백준 2606 - 바이러스]  (0) 2021.08.05
DFS와 BFS  (0) 2021.08.04
    'PS' 카테고리의 다른 글
    • DP ( Dynamic Programming, 동적 계획법 )
    • [ 프로그래머스 - 타켓 넘버 ] DFS
    • 7주차 [ 음료수 얼려 먹기 ]
    • 7주차 [백준 2606 - 바이러스]
    itisjustK
    itisjustK

    티스토리툴바