컴공생의 다이어리
[파이썬, Python] 백준 12851번 : 숨바꼭질 2 본문
백준 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
'Development > Algorithm & Coding Test' 카테고리의 다른 글
[파이썬, Python] 백준 16507번 : 어두운 건 무서워 (0) | 2022.08.13 |
---|---|
[파이썬, Python] 백준 1024번 : 수열의 합 (0) | 2022.08.10 |
[파이썬, Python] 백준 16948번 : 데스 나이트 (0) | 2022.08.08 |
[프로그래머스] 선입 선출 스케줄링 - 파이썬(Python) (0) | 2022.08.03 |
[프로그래머스] 가장 큰 수 - 파이썬(Python) (0) | 2022.07.29 |
Comments