[JAVA] 2048(Easy) 삼성 기출 문제 (백준 12100)
전형적인 구현 문제 상하좌우를 그대로 구현했는데 다른 사람들 풀이 보니까 rotate 를 구현하고 방향 하나만 구현한 것이 많이 보였다.. 이렇게하면 확실히 코드 길이는 줄어 들듯 하다. 내 코드를 보면서 불필요한 부분들이 몇개 발견되었다. 먼저 나의 풀이를 소개한다. 만약 배열의 한줄만 생각한다고 가정하자. [2,2,0,4,4] 의 배열이 있을 때 오른쪽으로 이동하면 [0,0,0,4,8] 왼쪽으로 이동하면 [4,8,0,0,0] 이렇게 될 것이다. 왼쪽으로 이동할 때 어떻게 풀었는지 보자. 똑같은 크기의 0으로 가득차있는 배열 tmp = [0,0,0,0,0] 를 선언및 초기화한다. 그리고 비어있는 Deque 한개를 선언하고 boolean으로 ok =true를 선언하여 이전에 합쳐졌는지 안 합쳐졌는지 체크..
2020. 9. 1.
[JAVA] 토마토 (백준 7569)
이 문제는 2차원이 아니라 3차원으로 bfs푸는 것이다. 또한 익기 시작하는 지점이 정해진 것도 아니며 여러개가 있을 수도 있고 없을 수도 있다. 관건은 모든 토마토가 익었는지 확인하는 것과 모두 익었다면 며칠이 걸리는지 구하는 것이 핵심이다. 본인이 접근한 방법대로 2층짜리 3x3 토마토상자가 있다고 가정하고 풀어보는 예시를 보자. 예) (z,x,y) 에서 z 는 높이이며 , x 는 가로, y는 세로다. x,y,z 모두 0부터 시작한다. 시작전 ( 0초 ) 큐에 남은 좌표 : (0,1,1) 1층 0 0 0 0 1 0 0 0 0 2층 0 0 0 0 0 0 0 0 0 1초후 큐에 남은 좌표: (0,0,1) , (0,1,0), (0,2,1) , (0,1,2) 1층 0 2 0 2 1 2 0 2 0 2층 0 0..
2020. 8. 15.