๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐‘†๐‘ข๐‘›๐‘ โ„Ž๐‘–๐‘›๐‘’ ๐‘Ž๐‘“๐‘ก๐‘’๐‘Ÿ ๐‘Ÿ๐‘Ž๐‘–๐‘›โœง

[Python] ๋ฐฑ์ค€ 5014 & ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ ๋ณธ๋ฌธ

#5012 ์Šคํƒ€ํŠธ๋งํฌ

# ์ด F์ธต
# ์Šคํƒ€ํŠธ๋งํฌ G์ธต
# ํ˜„์žฌ ๊ฐ•ํ˜ธ S์ธต
# U๋Š” ์œ„๋กœ u์ธต
# D๋Š” ์•„๋ž˜๋กœ d์ธต

F, S, G, U, D = map(int, input().split())
visited = [-1] * (F + 1)

from collections import deque
def bfs():
    q = deque()
    q.append(S)
    visited[S] = 0
    while q:
        x = q.popleft()
        if x == G:
            return visited[x]
        for nx in (x+U, x-D):
            if 1 <= nx <= F and visited[nx] == -1:
                q.append(nx)
                visited[nx] = visited[x] + 1

    return "use the stairs"

print(bfs())

 

record = ["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]

def solution(record):
    memo = {}
    answer = []
    for message in record:
        info = message.split()
        if info[0] == "Enter" or info[0] == "Change":
            memo[info[1]] = info[2]

    for id in record:
        info = id.split()
        if info[0] == "Enter":
            answer.append(memo[info[1]]+"๋‹˜์ด ๋“ค์–ด์™”์Šต๋‹ˆ๋‹ค.")
        elif info[0] == "Leave":
            answer.append(memo[info[1]]+"๋‹˜์ด ๋‚˜๊ฐ”์Šต๋‹ˆ๋‹ค.")

    return answer
print(solution(record))
# memo[info[0]] = info[2]