-
https://www.acmicpc.net/problem/1194
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%201194
해당 문제는 map가 주어졌을 때 아래 조건을 만족하면서 1로 이동하는 최솟값을 구하는 문제다.
빈 곳 : 언제나 이동할 수 있다. ('.‘로 표시됨)
벽 : 절대 이동할 수 없다. (‘#’)
열쇠 : 언제나 이동할 수 있다. 이곳에 처음 들어가면 열쇠를 집는다. (a - f)
문 : 대응하는 열쇠가 있을 때만 이동할 수 있다. (A - F)
민식이의 현재 위치 : 빈 곳이고, 민식이가 현재 서 있는 곳이다. (숫자 0)
출구 : 달이 차오르기 때문에, 민식이가 가야 하는 곳이다. 이곳에 오면 미로를 탈출한다. (숫자 1)
만약 출구로 갈수 없다면 -1을 출력해 준다.
해당 문제에서 체크해야 할 부분은 열쇠를 회 득하는인데 이 부분을 비트 마스킹을 통해 구현하였다
열쇠는 총 6개이므로 000000~111111으로 나타내며 오른쪽부터 a b c 순으로 열쇠를
가진다는 의미를 가지고 있다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 2458 키 순서 JAVA (0) 2021.11.13 Baekjoon 17244 아맞다우산 JAVA (0) 2021.11.13 Baekjoon 1707 이분 그래프 JAVA (0) 2021.11.13 Baekjoon 4485 녹색 옷 입은 애가 젤다지? JAVA (0) 2021.11.13 Baekjoon 12738 가장 긴 증가하는 부분 수열 3 JAVA (0) 2021.11.13 댓글