BOJ

    [BJ] 백준 16954 움직이는 미로 탈출 (JAVA)

    [BJ] 백준 16954 움직이는 미로 탈출 (JAVA)

    문제 https://www.acmicpc.net/problem/16954 풀이 방법 가장 왼쪽 하단에서 가장 오른쪽 상단으로이동하면 되는 문제이다. 대신에 맵에는 벽이 존재하고 벽이 아래로 이동하는 조건이 걸려있다. 풀이 방법은 BFS로 풀이했다. 우선 이동 가능한 좌표들을 선언해주고(제자리 포함), 이동 가능한 구역으로 이동후 queue에 넣어준다. 그리고 방문배열을 체크해줘야하는데 제자리에 있는 경우도 있기 때문에 3차원 배열로 만들어서 마지막은 방향으로 방문 배열을 생성해줬다. 그리고 캐릭터 이동 -> 벽 이동이기 때문에 같은 횟수? 번째? 이동인 경우에는 한 번에 처리해주고 그 다음에 벽을 이동해줬다. 제출 코드 import java.io.*; import java.util.*; public cl..

    [BJ] 백준 21610 마법사 상어와 비바라기 (JAVA)

    [BJ] 백준 21610 마법사 상어와 비바라기 (JAVA)

    문제 https://www.acmicpc.net/problem/21610 풀이 방법 문제에 따라서 순서대로 차근차근 구현해갔다. 문제에서 주목해야할 점은 1. 구름이 이동할 때 범위에 신경써야 하는 것 2. 대각선 방향을 확인할때의 범위는 또 다르게 적용된다는 것 3. 한꺼번에 처리하려다가 오히려 잘못된 값이 나올 수 있다는 점 이 세가지인 듯 하다. 나는 구현하는 건 어렵지 않았지만 3번 때문에 디버깅하는데 조금 시간이 걸렸다. 그리고 격자도 그렇고, 방향도 그렇고 인덱스 1부터 시작하는걸 나는 0부터 시작하는 걸로 수정해서 구현했다. 전제적인 과정을 정리하면 다음과 같다. 1. 처음에 구름 생성해주기 2. M번 이동 실행하기 1) 모든 구름을 올바른 방향으로 이동 시키기 2) 물의 양 증가시키기 3)..