Algorithm
[JAVA] 백준 2638 : 치즈
문제 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5≤N, M≤100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 표 www.acmicpc.net 해결 방법 하루가 지나면 녹는 치즈들이 며칠 후에 완전히 녹는지 알아내는 문제다. 외부 공기와 접촉한 부분이 2부분 이상이면 녹게 되는데, 치즈로 둘러쌓여 있는 부분이면 외부 공기에 해당하지 않는다. 문제에서 가장자리들에는 치즈가 놓이지 않는다고 하였기 때문에 초기에 0, 0 에서 탐색을 시작해서 탐색이 가능한 부분이 외부 공기에 해당하는 부분이라고 생각하면 된다. 외부 공기에 해당하는 부분은 3으로 초기화를 해준다음에 치즈의 상하좌우에 3인 부분..
[JAVA] 백준 3109 : 빵집
문제 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net 해결 방법 처음엔 BFS 로 탐색을 시도했었는데 문제가 파이프를 생성하고 그 파이프가 지나간 길을 제외한 다른 길에 새로운 파이프를 연결하는 방식이라 DFS로 시작점부터 끝점까지 한 번에 파악하는게 DFS가 맞는 것 같아서 수정해서 풀었다. 처음 생각했던 것은 파이프가 이어지는 방식이다. 문제에서 오른쪽, 오른쪽 위 대각선, 오른쪽 아래 대각선으로만 이동이 가능하다고 했는데, 왼쪽 제일 윗 칸인 (0, 0)에서 부터 탐색을 시작하는 점을 감안하여 보면 오른쪽 위, 오른쪽,..
[JAVA] 백준 6549 : 히스토그램에서 가장 큰 직사각형
문제 6549번: 히스토그램에서 가장 큰 직사각형 입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤ www.acmicpc.net 해결 방법 처음에 이해가 잘 되지않아서 다른 블로그를 참고해서 풀었다. 참고한 블로그 : iamheesoo.github.io/blog/algo-boj6549 스택으로 문제를 풀어나가는 방식이 이해하기 편해서 사용했다. 문제에 있는 예시를 살펴보면 이와 같은 그림이 있다. 각 가로 길이가 1이고 세로 길이가 입력으로 주어지는 직사각형들이 연달아서 존재하고 이 중에서 가장 넓이가 큰 직사각형을 찾아내야하..