컴공생의 다이어리

[파이썬, Python] 백준 12851번 : 숨바꼭질 2 본문

Development/Algorithm & Coding Test

[파이썬, Python] 백준 12851번 : 숨바꼭질 2

컴공 K 2022. 8. 9. 00:01

백준 12851번 : 숨바꼭질 2

(문제 바로가기)

 

 

내 코드

from collections import deque

n, k = map(int, input().split())

visited = [[-1, 0]] * 100001
visited[n] = [0, 1]

queue = deque([n])

while queue:  # bfs 수행
    pos = queue.popleft()
    for next_pos in (pos - 1, pos + 1, pos * 2):
        if 0 <= next_pos <= 100000:
            if visited[next_pos][0] == -1:  # 처음 방문시
                visited[next_pos] = [visited[pos][0] + 1, visited[pos][1]]
                queue.append(next_pos)
            elif visited[next_pos][0] == visited[pos][0] + 1:  # 한번 이상 방문한 경우
                visited[next_pos][1] += visited[pos][1]

print(*visited[k], sep="\n")

 

 

728x90
반응형
Comments