FickleBoBo

[BaekJoon] 12851번 - 숨바꼭질 2 [Java][C++]

문제 링크 1. 아이디어 BaekJoon 1697번 - 숨바꼭질 문제에서 최단 시간과 최단 시간에 찾는 경우의 수까지 구해야 하는 문제다. 수빈이가 각 좌표를 방문한 최단 시간을 저장하는 dist 배열을 활용해서 방문 체크겸 최단 시간 기록을 해줬고, 각 좌표를 방문한 횟수를 저장한 ways 배열을 활용해서 방문한 적이 없는 좌표면 이전 위...

[BaekJoon] 2206번 - 벽 부수고 이동하기 [Java][C++]

문제 링크 1. 아이디어 $(1,\ 1)$ 에서 $(N,\ M)$ 까지 이동하는 최단 거리를 구하되 벽을 한번은 부술 수 있는 문제로 기본적으로 최단 거리 BFS를 활용하되 특정 좌표를 벽을 부순 적이 있는 상태로 방문했는지, 벽을 부순 적이 없는 채로 방문했는지 상태까지 검증하면 된다. 이를 위해 방문 체크 배열을 3차원으로 설정해서 좌표...

[BaekJoon] 16946번 - 벽 부수고 이동하기 4 [Java][C++]

문제 링크 1. 아이디어 맵에 대해 벽인 경우 해당 벽을 부쉈을 때 방문할 수 있는 칸의 개수를 해당 위치에 기록해서 맵 전체에 대한 결과를 출력해야하는 문제다. 매번 벽을 부수고 BFS로 개수를 셀 경우 시간 초과가 발생하게 되는데 맵 전체를 순회하며 빈칸인 경우 인접한 모든 빈칸을 방문처리하고 가장자리 벽들을 임시로 큐에 담은 후 이를 ...

[BaekJoon] 16933번 - 벽 부수고 이동하기 3 [Java][C++]

문제 링크 1. 아이디어 BaekJoon 14442번 - 벽 부수고 이동하기 2 문제에서 낮과 밤이 추가되어 벽은 낮에만 부술 수 있으며 이동하지 않고 머물 수도 있는 문제로 방문 체크에서 낮과 밤도 상태로 추가해주면 된다. 탐색중 벽을 만나면 낮일 경우 동일하게 풀고 밤일 경우 flag를 true로 설정해서 이동하지 않는 경우를 고려해줬다...