Coding - Algo/python
[백준] 14226번:이모티콘 (python 파이썬)
jainn
2021. 3. 2. 14:31
728x90
문제
14226번: 이모티콘
영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만
www.acmicpc.net
풀이
deque에 (현재 모니터에 표시되어있는 이모티콘의 길이, 클립보드에 복사된 이모티콘의 길이) 를 넣어주며
deque가 빌 때 까지 반복하며 복사, 붙혀넣기, 삭제의 과정을 반복해준다.
소스코드
from collections import deque
dp = [[-1]*1001 for _ in range(1001)]
dp[1][0] = 0
que = deque()
que.append((1,0))
s = int(input())
while que:
mlen, clen = que.popleft()
if dp[mlen][mlen] == -1:
dp[mlen][mlen] = dp[mlen][clen]+1
que.append((mlen, mlen))
if mlen+clen<=s and dp[mlen+clen][clen]==-1:
dp[mlen+clen][clen] = dp[mlen][clen]+1
que.append((mlen+clen, clen))
if mlen-1>0 and dp[mlen-1][clen]==-1:
dp[mlen-1][clen] = dp[mlen][clen]+1
que.append((mlen-1, clen))
ans = -1
for i in range(s):
if dp[s][i]!=-1:
if ans==-1 or ans>dp[s][i]:
ans = dp[s][i]
print(ans)
반응형