전체 글
백준 2589 : 보물섬
문제 링크 접근 방법 최장 최단 거리이므로 BFS 결과 중 가장 큰 값을 구한다. 삽질했던 부분 트리의 지름 처음 문제에 접근했을 때 효율적으로 풀기 위해서 임의의 한 점에 대해 가장 먼 지점을 구하고, 가장 먼 지점에서부터 BFS를 수행하여 먼 곳까지의 거리를 구하면 답이 나올 수 있다고 생각했다. 즉, 트리의 지름을 구하면 답이 될 것이라고 생각했다. 하지만 문제에 주어진 보물섬이 트리가 아닐 수 있기 때문에 오답이 나왔다. 처음에는 트리가 아닐 수 있다는 점이 이해가 되질 않았는데 luniro님의 반례를 통해 이해할 수 있었다. 반례 7 7 WLLLLLW LWLWLWW LLLWLWW LWWWLWW LLLLLWW LWWWWWW WWWWWWW 우선 문제 그대로 풀이하게 되면 그림 처럼 빨간색이 보물이 ..
백준 19236 : 청소년 상어
문제 링크 접근 방법 시뮬레이션 문제이기 때문에 문제 그대로 풀었고 물고기와 상어가 이동할 때 어떤 데이터가 필요한지 먼저 분석했다. 물고기의 이동 물고기 번호 순서대로 이동이 일어나야 한다 → 번호에 따른 물고기 위치 파악 물고기의 좌표값이 교환된다 상어의 이동 좌표에 있는 물고기의 번호를 알아야 한다 → 위치에 따른 물고기 번호 파악 우선 물고기 정보(x, y, 방향)을 담는 Fish 클래스를 선언하고 정보를 관리하는 배열 Fish[]를 만들어서 물고기 번호로 위치와 방향을 알 수 있게 만들었다. 또한, int[][] map에는 해당 좌표의 물고기의 번호를 저장하였다. 물고기의 이동시 Fish[]를 순서대로 보면서 갈 수 있는 위치라면 위치를 교환해주고 방향값을 갱신하였다. 상어의 이동시 갈 수 있는..