https://www.acmicpc.net/problem/14226
1. 백그라운드와 클립보드 둘다 작업해야하기 때문에 2차원 ch 배열을 만들어준다.
2. 조건중에서 -1 이 있기 때문에 값이 s값을 넘어갈수도 있으므로 배열을 s*2+1 만큼 선언해준다.
3. bfs를 사용하였고 조건에 맞춰서 queue에 삽입한다.
from collections import deque
s = int(input())
ch = [[0 for _ in range(2001)] for _ in range(2001)]
queue = deque()
queue.append([1, 0, 0])
while queue:
bg, cl, time = queue.popleft()
if bg == s:
print(time)
break
if ch[bg][cl]:
continue
ch[bg][cl] = 1
if bg >= 1:
queue.append([bg-1, cl, time+1])
queue.append([bg, bg, time+1])
if cl:
queue.append([bg+cl, cl, time+1])
'알고리즘 > BOJ' 카테고리의 다른 글
[Python] 백준 7579: 앱 (0) | 2021.10.04 |
---|---|
[Python] 백준 5582: 공통 부분 문자열 (0) | 2021.10.04 |
[Python] 백준 2631: 줄세우기 (0) | 2021.10.04 |
[Python] 백준 5554: 1학년 (0) | 2021.10.03 |
[Python] 백준 10942: 팰린드롬? (0) | 2021.10.03 |
댓글