반응형
문제
https://www.acmicpc.net/problem/7562
풀이
BFS로 풀이할 수 있는 문제입니다.
체스판의 크기가 주어지면, l * l 크기의 2차원 Bool 배열을 만들어주었고, false로 초기화하였습니다.
이 2차원 배열을 나이트가 이동하는 경로를 확인 용도로 사용하려고 합니다.
또한 나이트는 8방향으로 움직일 수 있으므로, 8방향을 dy, dx라는 상수로 값을 주었습니다.
BFS를 할 때, 처음 큐에 초기 나이트의 y, x 좌표와 이동한 횟수(0)을 (Int, Int, Int) 튜플 형태로 넣어주었습니다.
8방향에 대해서 체스판의 범위를 벗어나는지 확인하고, 벗어나지 않고 방문한 적이 없다면
queue에 해당 좌표를 넣어주고, 이동한 횟수 + 1을 넣어주었습니다.
만약 이동한 방향이 나이트가 이동하려고 하는 칸이라면, 이동한 횟수를 출력해줍시다.
소스코드
후기
BFS로 풀 수 있는 문제였습니다.
4방향 -> 8방향으로 바뀐것 말고는 비슷한 문제들을 많이 풀어본 느낌이였습니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 7569 토마토 (Swift) (0) | 2023.04.27 |
---|---|
[BOJ] 백준 7576 토마토 (Swift) (0) | 2023.04.27 |
[BOJ] 백준 1697 숨바꼭질 (Swift) (0) | 2023.04.26 |
[BOJ] 백준 2178 미로 탐색 (Swift) (0) | 2023.04.26 |
[BOJ] 백준 1012 유기농 배추 (Swift) (0) | 2023.04.26 |