오늘은 알고리즘 문제를 통해 0-1 bfs 알고리즘에 대해 배웠다.
가중치가 0,1 둘뿐인경우 최소 가중치 경로를 구하는 알고리즘 이라고 한다.
from collections import deque
N,K=map(int,input().split())
queue=deque()
visited=[False]*100001
queue.appendleft((N,0))
def bfs():
while queue:
vertex,time=queue.popleft()
visited[vertex]=True
if vertex == K:
return time
if 0 <= vertex * 2 <= 100000 and not visited[vertex * 2]:
queue.appendleft((vertex * 2, time))
if 0 <= vertex - 1 <= 100000 and not visited[vertex - 1]:
queue.append((vertex - 1, time + 1))
if 0 <= vertex + 1 <= 100000 and not visited[vertex + 1]:
queue.append((vertex + 1, time + 1))
print(bfs())
오늘 강의를 한 번 슥 들었는데 이해가 조금 쉽지 않겠다는 느낌이 들었음,,!
i+1로 하면 39번째 연결되는 애는 40번 하나밖에 없지않나,,? 라는 의문이 들어서
gpt와 대화로 이해해보려고했다.
이전단계에서 연결되었기 때문에 모든점의 선 개수가 동일한것이라고 한다,,! 이해완
이건 오늘 강의에서 실습한 애니메이션되는 점, 선 움직임이다.

이중 포문을 이용해 점과 점을 선으로 잇고,
점과 점사이의 거리 x,y를 피타고라스 정리를 통해 구한다음 특정거리 이상으로 떨어지면 연결이 끊어지게 끔 구현을 했다.
강의를 따라 완성을 하면 흰 배경에 검은 점,선의 움직임을 표현할 수 있었다.
이렇게 끝내기엔 심심해서
뭔가 밤하늘의 별자리 같다고 느껴져서
배경의 색을 밤하늘색으로 바꾸고 점과 점이 연결될 때 bool 타입으로 체크를 해주어 true일 때 점이 노란색으로 빛나는 연출을 더해주었다.
추가적으로 별의 움직임에 가속도를 준다거나 움직임을 직선운동이 아닌 곡선(?) 운동으로 바꿔준다거나,, 고요한 사운드도 추가해보고 싶다.