表情記号
白駿14226
英善が画面上でS個の表情を作るのに要する時間の最大値を求める.
にゅうしゅつりょく
入出力2244465188
方法
:bfsを用いて3つの状況を行う.すべての演算に同じ1秒を要するため,重みを付けずに追加する.
知るところ
画面上の表情は、クリップボード上の表情の数とともに2 D配列として表示されます.
いずれの場合も、キューに配置して
コード#コード#
from collections import deque
def bfs(n, visited):
visited[1][0] = 0
q = deque()
q.append((1,0))
while q:
u, c = q.popleft()
if u==n:
return visited[u][c]
#화면 모두 복사 클립보드에 저장
if 0<=u<=n and visited[u][u] == -1:
visited[u][u] = visited[u][c]+1
q.append((u,u))
#클립보드 모두 화면으로 붙여넣기
if 0<=u+c<=n and visited[u+c][c] == -1:
visited[u+c][c] = visited[u][c]+1
q.append((u+c, c))
#화면에 있는 이모티콘 하나 삭제
if 0<=u-1<=n and visited[u-1][c] == -1:
visited[u-1][c] = visited[u][c]+1
q.append((u-1,c))
n = int(input())
#화면, 클립보드
visited = [[-1]*(n+1) for _ in range(n+1)]
print(bfs(n, visited))
Reference
この問題について(表情記号), 我々は、より多くの情報をここで見つけました https://velog.io/@sezeom/이모티콘テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol