자고일어나니코딩왕
자일코의 CODING
자고일어나니코딩왕
전체 방문자
오늘
어제
  • 분류 전체보기 (64)
    • [Linux]리눅스 (1)
    • [NETWORK]네트워크 (17)
    • [PS] 알고리즘문제풀이 (16)
    • [SQL] (13)
    • [ALGORITHM]알고리즘개념 (9)
    • [DATA_STRUCTURE]자료구조 (1)
    • [PYTHON]파이썬 (0)
    • [정보처리기사] (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리눅스
  • 리눅스 #파일시스템 #디렉토리
  • ssh
  • BIOS #MBR #LILO #Kernel #init
  • virtualbox
  • 원격접속

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
자고일어나니코딩왕

자일코의 CODING

[백준,PS,BFS][PYTHON] #1697 . 숨바꼭질
[ALGORITHM]알고리즘개념

[백준,PS,BFS][PYTHON] #1697 . 숨바꼭질

2020. 6. 16. 19:59

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

from collections import deque

def bfs(n):
    global count

    while q:
        
        x,count = q.popleft()
        if x ==m :
            return -1
        #count의 위치가 중요하다.
        count = count +1 #그래프 BFS 탐색시에 깊이마다 level을 구할수있게 해주는 방법은
        
        if 0<= x-1 <=100000 and x-1 not in visited:
            q.append([x-1,count]) # 큐에 count를 저장하고 pop하는 것이다.
            visited.append(x-1)
            
        if 0<= x+1 <=100000 and x+1 not in visited:
            q.append([x+1,count])
            visited.append(x+1)
            
        if 0<= x *2 <=100000 and x*2 not in visited:
            q.append([x*2,count])
            visited.append(x*2)
    
n,m = map(int,input().split())
q = deque()
visited = []
count = 0

q.append([n,count])#애초에 큐에 시작노드와 카운트를 저장하면서간다.

visited.append(n)
bfs(n)


print(count)

'[ALGORITHM]알고리즘개념' 카테고리의 다른 글

[ALGORITHM]#7.최단경로(shortest path)  (0) 2020.05.16
[ALGORITHM]#7.BFS & DFS  (0) 2020.05.16
[ALGORITHM]#6.탐욕(Greedy)  (0) 2020.05.16
[ALGORITHM]#5.그래프(Graph)  (0) 2020.05.16
[ALGORITHM]#4.탐색  (0) 2020.05.16
    '[ALGORITHM]알고리즘개념' 카테고리의 다른 글
    • [ALGORITHM]#7.최단경로(shortest path)
    • [ALGORITHM]#7.BFS & DFS
    • [ALGORITHM]#6.탐욕(Greedy)
    • [ALGORITHM]#5.그래프(Graph)
    자고일어나니코딩왕
    자고일어나니코딩왕
    열코!

    티스토리툴바