-
https://www.acmicpc.net/problem/12761
12761번: 돌다리
동규와 주미는 일직선 상의 돌 다리 위에있다. 돌의 번호는 0 부터 100,000 까지 존재하고 동규는 \(N\)번 돌 위에, 주미는 \(M\)번 돌 위에 위치하고 있다. 동규는 주미가 너무 보고싶기 때문에 최대
www.acmicpc.net
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%2012761
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
해당 문제는 동규와 주미의 위치가 주어졌을 때 동규가 주미한테 몇 번 만에 갈 수 있는지 구하는 문제다.
이동 방법은 좌우로 한칸 or 좌우로 A칸 or 좌우로 B칸 이동 가능하며,
추가적으로 현재 돌에서 *A, B만큼도 이동 가능하다.
해당 문제는 bfs를 이용해서 해결했으며, 문제 자체는 어렵진 않았으나
문제를 이해하는 부분에서 잘못 이해해서 다시 풀었던 문제다.
먼저 입력 처리를 해주면서 count를 저장할 배열을 하나 선언하고 크기를 100001로 잡아준다.
이후 bfs를 돌려주는데 큐에는 동규의 위치를 넣어주기만 하면 되기 때문에
인트형으로 받아준다.
큐에서 빼낸값이 주미의 값과 같으면 count에서 주미의 위치를 반환해주면 되고
그렇지 않으면 위의 조건만큼 이동해서 체크하고 이동 가능하면 이동 횟수를 배열에 저장하고
큐에는 이동한 칸을 저장하는 방식으로 진행했다.
방문 여부는 이동 횟수를 저장하는 배열을 통해 0이 아니면 이미 방문했기 때문에
체크가 충분히 가능하다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 1269 대칭 차집합 JAVA (0) 2021.12.16 Baekjoon 2589 보물섬 JAVA (0) 2021.12.15 Baekjoon 18405 경쟁적 전염 JAVA (0) 2021.12.11 Baekjoon 2470 두 용액 JAVA (0) 2021.12.11 Baekjoon 14425 문자열 집합 JAVA (0) 2021.12.09 댓글