https://www.acmicpc.net/problem/1051
분류 : 완전 탐색
더보기
public class Main {
public static PrintWriter out;
public static void main(String[] args) throws IOException {
MyScanner sc = new MyScanner();
out = new PrintWriter(new BufferedOutputStream(System.out));
int ans = 1;
int N = sc.nextInt();
int M = sc.nextInt();
int min = Math.min(N, M);
char[][] ch = new char[N][M];
for (int index = 0; index < N; index++) {
ch[index] = sc.nextLine().toCharArray();
}
for (int check = 1; check <= min; check++) {
for (int y = 0; y < M; y++) {
for (int x = 0; x< N; x++) {
if ((x + check < N) &&( y + check < M)) {
if ((ch[x][y] == ch[x + check][y]) && (ch[x][y] == ch[x][y + check])
&& (ch[x][y] == ch[x + check][y + check])) {
ans = (check+1)*(check+1);
}
}
}
}
}
System.out.println(ans);
out.flush();
}
}
문제 풀이 : 변의 길이를 정하는 check 변수의 for문부터 시작해서 y좌표 -> x좌표를 이동시켜 가면서 사각형의 모든 꼭짓점에 해당하는 부분이 같은지 판별
=> 같다면 (check+1)이 한 변의 길이가 되므로 (check+1)^2 가 넓이가 된다.
'PS' 카테고리의 다른 글
[BOJ]1697번 - 숨바꼭질 (0) | 2017.06.06 |
---|---|
[BOJ] 2568번 : 전깃줄 - 2 (0) | 2017.06.01 |
[BOJ] 2512번 - 예산 (0) | 2017.05.29 |
[BOJ]2526번 : 싸이클 (0) | 2017.05.01 |
[BOJ]1660번 : 캡틴 이다솜 (0) | 2017.04.26 |