File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed
Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change 1+ from collections import deque
2+ import sys
3+
4+ S = int (sys .stdin .readline ().strip ())
5+
6+ # visited[screen][clipboard]
7+ visited = [[- 1 ] * (S + 1 ) for _ in range (S + 1 )]
8+
9+ queue = deque ()
10+ queue .append ((1 , 0 )) # 화면: 1, 클립보드: 0
11+ visited [1 ][0 ] = 0
12+
13+ while queue :
14+ screen , clipboard = queue .popleft ()
15+
16+ # 목표 이모티콘 수에 도달하면 종료
17+ if screen == S :
18+ print (visited [screen ][clipboard ])
19+ break
20+
21+ # 1. 복사 (화면 -> 클립보드)
22+ if visited [screen ][screen ] == - 1 :
23+ visited [screen ][screen ] = visited [screen ][clipboard ] + 1
24+ queue .append ((screen , screen ))
25+
26+ # 2. 붙여넣기 (클립보드 -> 화면)
27+ if clipboard != 0 and screen + clipboard <= S and visited [screen + clipboard ][clipboard ] == - 1 :
28+ visited [screen + clipboard ][clipboard ] = visited [screen ][clipboard ] + 1
29+ queue .append ((screen + clipboard , clipboard ))
30+
31+ # 3. 삭제 (화면 -1)
32+ if screen - 1 >= 0 and visited [screen - 1 ][clipboard ] == - 1 :
33+ visited [screen - 1 ][clipboard ] = visited [screen ][clipboard ] + 1
34+ queue .append ((screen - 1 , clipboard ))
You can’t perform that action at this time.
0 commit comments