-
https://www.acmicpc.net/problem/1697
1697번: 숨바꼭질
수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일
www.acmicpc.net
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%201697
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
해당 문제는 수빈이와 동생의 위치가 주어졌을 때 수빈이가 몇 초 만에 동생 위치로 갈 수 있는지 구하는 문제다.
이동 방법은 1초에 +1칸 -1칸 x2칸 중에서 선택해서 갈 수 있다.
처음에 문제를 보고 DP라고 생각해서 22까지 경우에 대해서 한번 나열해보았는데
규칙이 나올듯하면서도 나오지 않아 문제의 알고리즘 분류를 확인해 봤는데
BFS가 보였고 생각해 보면 각 초마다 갈 수 있는 위치를 계산해서 BFS
통해 계산해서 값을 넣어주고 방문 여부도 체크하는 식으로 하고
최종적으로 값이 같으면 출력해 주는 방식으로 문제를 해결했다.
처음 문제를 풀고 제출했을 때는 ArrayIndexOutOfBounds 가 발생했었고
값을 체크하는 부분에서 방문 여부뿐만 아니라 값이 0~100000의 범위를 벗어나는지
체크를 빼먹어서 발생했다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 2178 미로 탐색 JAVA (0) 2021.11.11 Baekjoon 18870 좌표 압축 JAVA (0) 2021.11.11 Baekjoon 7662 이중 우선순위 큐 JAVA (0) 2021.11.10 Baekjoon 11279 최대 힙 JAVA (0) 2021.11.10 Baekjoon 1260 DFS와 BFS JAVA (0) 2021.11.10 댓글