Potato

 

 

  • 이동할 수 있는 경우의수가 8가지가 있는데 각각 방문표시를 하며 풀었다
from collections import deque

used = [0] * 100001

A,B,N,M = map(int,input().split())
q = deque([N])
while q:
    tmp = q.popleft()
    if tmp == M:                                   # 해당위치가 목표지점이라면 break 
        result = used[tmp]
        break
    if tmp - 1 >= 0 and used[tmp - 1] == 0:
        used[tmp - 1] = used[tmp] + 1
        q.append(tmp - 1)
    if tmp + 1 <= 100000 and used[tmp + 1] == 0:
        used[tmp + 1] = used[tmp] + 1
        q.append(tmp + 1)
    if tmp - A >= 0 and used[tmp - A] == 0:
        used[tmp - A] = used[tmp] + 1
        q.append(tmp - A)
    if tmp - B >= 0 and used[tmp - B] == 0:
        used[tmp - B] = used[tmp] + 1
        q.append(tmp - B)
    if tmp + A <= 100000 and used[tmp + A] == 0:
        used[tmp + A] = used[tmp] + 1
        q.append(tmp + A)
    if tmp + B <= 100000 and used[tmp + B] == 0:
        used[tmp + B] = used[tmp] + 1
        q.append(tmp + B)
    if tmp * A <= 100000 and used[tmp * A] == 0:
        used[tmp * A] = used[tmp] + 1
        q.append(tmp * A)
    if tmp * B <= 100000 and used[tmp * B] == 0:
        used[tmp * B] = used[tmp] + 1
        q.append(tmp * B)


print(used[tmp])

 

 

 

왜 틀렸을까 ?
  • 인덱스에러, 문제에선 10만번까지 갈 수 있는데 if문에서 100001까지 범위를 지정하여 인덱스에러가 났었다.

'Python > 백준' 카테고리의 다른 글

[백준/Python] 4179. 불!  (0) 2023.08.04
[백준/Python] 13241.최소공배수  (0) 2023.04.12
[백준/Python] 13565. 침투  (0) 2023.03.02
[백준/Python] 6593.상범 빌딩  (0) 2023.02.28
[백준/Python] 2467. 용액  (0) 2022.12.23

+ Recent posts