Joonas' Note
목록2018/05/08 (1)
Joonas' Note
BOJ 1525 - 퍼즐
링크: https://www.acmicpc.net/problem/1525 비트마스크로 해결하는 BFS이다. 3*3 퍼즐을 123 456 780 의 9자리 정수로 본다. 여기서 123456780이 문제에서 말하는 정리된 상태, 즉, 목표이다. 각 칸마다 퍼즐을 이동 시킬 수 있는 주변 4방향이 다르다. 구현하는 방법은 각 칸마다 인접 리스트를 만들거나, 행렬로 표현하든지 if문으로 하는 등 다양하다. 아래 코드에서는 반대로 이동이 불가능한 방향을 저장해서 구현했다. 문제는 "123456780" 과 같은 상태를 방문 했는지 여부를 확인하기에는 visit[876543210]를 수용할 수 있는 배열 크기가 필요하다. 하지만 실제로 나타날 수 있는 상태의 개수는 \(9! = 362,880\) 이다. 방문했음을 저..
알고리즘/문제 풀이
2018. 5. 8. 21:30