[백준] 16928번: 뱀과 사다리 게임
간단한 BFS 응용문제였으나 처음 제출한 답안을 틀렸다.
뱀 또는 사다리를 만나면 무조건 도착점으로 이동해야 하는데, 만난 지점에서 주사위를 굴리는 경우를 고려한 것이 잘못됐던 것이다.
문제의 조건을 주의 깊게 보지 않아서 일어난 실수였다. 조금 더 생각해 보는 습관을 길러야겠다.
import sys
from collections import deque
input = sys.stdin.readline
N, M = map(int, input().split())
matrix = [0] * 101
portal = [0] * 101
for _ in range(N):
a, b = map(int, input().split())
portal[a] = b
for _ in range(M):
a, b = map(int, input().split())
portal[a] = b
def bfs():
q = deque([1])
while q:
v = q.popleft()
# 뱀 또는 사다리가 있는 경우
if portal[v] != 0:
q.append(portal[v])
matrix[portal[v]] = matrix[v] # 방문 및 count 처리
else:
for i in range(1, 7): # 주사위 굴리기
if v + i <= 100 and matrix[v + i] == 0:
q.append(v + i)
matrix[v + i] = matrix[v] + 1
bfs()
print(matrix[100])
Author And Source
이 문제에 관하여([백준] 16928번: 뱀과 사다리 게임), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@js43o/백준-16928번-뱀과-사다리-게임저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)