Today's special moments become memories of tomorrow.

분류 전체보기 172

[백준 13460번] 구슬 탈출 2 (java)

사용한 방법 : BFS 빨간 구슬의 위치를 넣는 큐와 파란 구슬의 위치를 넣는 큐 이렇게 두 개의 큐를 생성한다. 각각의 큐에는 기울이기를 통해 움직이고 난 후의 빨간구슬의 위치와 파란구슬의 위치 정보가 들어있다. Queue redque = new LinkedList(); Queue blueque = new LinkedList(); Pos 클래스는 구슬의 위치(n, m)과 구슬이 해당 위치에 도달했을 때 총 움직인 횟수 move 가 들어간다. static class Pos { int n, m, move; Pos(int n, int m, int move) { this.n = n; this.m = m; this.move = move; } } 한 번 기울이면 구슬은 장애물(벽 혹은 다른 구슬)에 부딪힐 때까지..

[백준 7569번] 토마토 (java)

사용한 방법 : BFS 어려웠던 점 : 하루가 지나면 익은 토마토 주변(위, 아래, 왼쪽, 오른쪽, 앞, 뒤)의 익지 않은 토마토가 익게 되는데 문제는 "익은 토마토 주변의 익지 않은 토마토가 익어가는 행위는 하루 사이에 동시다발적으로 진행"된다는 점이었다. 처음에는 큐에서 poll할 때마다 하루가 지나는 것으로 카운트하였는데 그러면 예를 들어 처음에 5개의 익은 토마토가 있는 경우, 하루밖에 안지났는데 카운트가 5가 되어버린다. 해결 : 어떠한 익은 토마토가 n번째 날에 익었다면 그 주변의 익지 않은 토마토는 n+1번째 날에 익은 것이므로 큐에 새로운 익지 않은 토마토가 있는 위치를 넣어줄 때마다 +1을 해주었다. package num7569; import java.io.BufferedReader; i..

BOJ 2019.09.18