[16236] 아기 상어
bfs로 풀었다. (최소거리로 가야하기 때문) 다만 갈 수 있는 것 중에 제일 상단, 아니면 제일 좌측에 있는 걸 찾아야 한다. 단순 bfs로는 해당 조건에 만족하는 물고기가 바로 나온다는 보장이 없어서배열에 해당 거리를 지나서 먹을 수 있는 물고기를 담아서sort한 뒤에 찾는 방식으로 찾았다.'''16236 아기상어'''import sysfrom collections import dequedef bfs(N, sea, pos, size): delta_x = [0, -1, 0, 1] delta_y = [-1, 0, 1, 0] my_queue = deque() visited = dict() caneat = list() current_depth = -1 my_queue.a..
2025. 9. 2.
[7562] 나이트의 이동
나이트가 갈 수 있는 곳의 delta들을 활용해서단순 bfs를 돌립니다. 최단 경로를 찾아야 하기 때문에 dfs보다는 bfs가 어울립니다.또한 경로의 길이를 뜻하는 depth가 같이 queue에 저장될 필요가 있습니다.import sysfrom collections import dequeT = int(sys.stdin.readline().strip()) def moveKnight(N, pos, des): delta_x = [-2, -2, -1, -1, 1, 1, 2, 2] delta_y = [-1, 1, -2, 2, -2, 2, -1, 1] queue = deque() visited = set() queue.append(tuple([pos[0], pos[1], 0])) w..
2025. 8. 28.