Skip to content

Commit a555d7d

Browse files
committed
[BOJ] #14226. 이모티콘 / 골드4 / 40분 / 힌트,성공
1 parent 69dd1d0 commit a555d7d

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import sys
2+
from collections import deque
3+
input = sys.stdin.readline
4+
5+
# 1. 입력 및 초기화
6+
S = int(input())
7+
MAX = 1001
8+
9+
# visited[screen][clipboard] = 해당 상태까지 걸린 시간
10+
visited = [[-1] * MAX for _ in range(MAX)]
11+
visited[1][0] = 0
12+
13+
queue = deque([(1, 0)]) # 화면 임티 개수, 클립보드 임티 개수
14+
15+
# 2. BFS 탐색
16+
while queue:
17+
screen, clip = queue.popleft()
18+
19+
# 3. 목표 달성 시 종료
20+
if screen == S:
21+
print(visited[screen][clip])
22+
break
23+
24+
for i in range(3):
25+
if i == 0: # 복사 (화면 → 클립보드)
26+
new_screen, new_clipboard = screen, screen
27+
elif i == 1: # 붙여넣기 (클립보드 → 화면)
28+
new_screen, new_clipboard = screen + clip, clip
29+
else: # 삭제 (화면 - 1)
30+
new_screen, new_clipboard = screen - 1, clip
31+
32+
if new_screen >= MAX or new_screen < 0 \
33+
or new_clipboard >= MAX or new_clipboard < 0 \
34+
or visited[new_screen][new_clipboard] != -1:
35+
continue
36+
37+
visited[new_screen][new_clipboard] = visited[screen][clip] + 1
38+
queue.append((new_screen, new_clipboard))

0 commit comments

Comments
 (0)