Skip to content

Commit 51ffa80

Browse files
committed
[BOJ] 이모티콘/ 골드 4 / 70분
https://www.acmicpc.net/problem/14226
1 parent cb96cd3 commit 51ffa80

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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))

0 commit comments

Comments
 (0)