본문 바로가기

Algorithm8

[ 백준 / Java ] 2573. 빙산 문제풀이빙하가 모두 녹거나, 빙하가 녹아서 두 부분 이상이 될때까지 반복문으로 빙하 녹이는 과정을 반복하고, 조건을 만족한다면 반복문을 break로 빠져나옵니다. for(int t = 1; ; t++) { // 시간을 계속 증가시키는 무한 반복문 ... }모든 칸을 돌면서 주변 0의 개수를 세어줍니다. (주변 0개수를 removeCnt에 저장)removeCnt의 값을 각 칸에서 빼줍니다. 이때 만약 map[i][j] - removeCnt[i][j]가 음수가 된다면, 0으로 바꿔줍니다.빙하가 모두 녹았는지 확인하고, 다 녹았다면 반복문을 빠져나갑니다.빙하가 몇 부분으로 갈라졌는지 개수를 세어줍니다. 여기서 dfs 로직이 필요합니다.빙하가 모두 녹거나, 2부분이상으로 녹을 때까지 위 로직.. 2024. 6. 4.
[백준 / Java] 2477. 참외밭 문제 풀이1. 클래스, 변수 선언 및 입력 받기Line이라는 클래스를 선언해줍니다.Line 클래스에는 선의 길이와 방향이 들어갑니다. static ArrayList lines; static class Line { int len; int direction; Line(int direction, int len) { this.len = len; this.direction = direction; } } K = Integer.parseInt(br.readLine()); for(int i=0; i 2. 가로, 세로에서 가장 긴 변 구하기입력으로 들어오는 도형은 항상 ㄱ 을 회전시킨 모양이므로, 큰 직사각형에서 작은 직사각형이 빠진 모양입니다.따라서 큰 직사각형의.. 2024. 5. 28.