Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 쓰레드 풀
- 백준
- 완도산회
- dp
- 스프링
- 양꼬치
- 서블릿
- 2589
- Spring
- 설탕 배달
- 프로그래머스
- 2020 KAKAO BLIND
- 동적 프로그래밍
- Servlet
- BFS
- 1로 만들기
- 투어
- mvc
- HTTP API
- 문자열 압축
- 알고리즘
- 고모네 콩탕
- 호유동
- 맛집
- 스프링 MVC
- 2638
- 맛집 투어
- 다이나믹 프로그래밍
- 포두부 보쌈
- 2839
Archives
- Today
- Total
프로그래밍 공방
[백준] 1051번 : 숫자 정사각형 본문
문제 |
N*M크기의 직사각형이 있다. 각 칸은 한 자리 숫자가 적혀 있다.
이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오.
이때, 정사각형은 행 또는 열에 평행해야 한다.
입력 |
첫째 줄에 N과 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 수가 주어진다.
출력 |
첫째 줄에 정답 정사각형의 크기를 출력한다.
문제해결방법 |
직사각형 배열의 원소마다 각 꼭짓점들을 확인하며 최대 길이를 찾는다.
코드 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | package baekjoon; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main1051_숫자정사각형 { public static char[][] map; public static boolean checkSquare(int i, int j, int l) { if(map[i][j] == map[i+l][j] && map[i][j] == map[i][j+l] && map[i][j] == map[i+l][j+l]) return true; return false; } public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); map = new char[N][M]; for(int i=0; i<N; i++) { String s = br.readLine(); for(int j=0; j<M; j++) map[i][j] = s.charAt(j); } int maxLength = Math.max(N, M); int curLength = 1; loop:for(int l = maxLength; l>0; l--) { for(int i=0; i<N-l; i++) { for(int j=0; j<M-l; j++) { if(checkSquare(i, j, l)) { curLength = l+1; break loop; } } } } System.out.println(curLength*curLength); } } | cs |
코드에 대한 피드백이나 더 좋은 아이디어는 언제나 환영입니다.
'개발 > 문제해결' 카테고리의 다른 글
[백준] 2644번 : 촌수계산 (0) | 2020.11.12 |
---|---|
[백준] 11725번 : 트리의 부모 찾기 (0) | 2020.11.12 |
[백준] 2579번 : 계단 오르기 (0) | 2020.11.10 |
[백준] 1303번 : 전쟁 - 전투 (0) | 2020.11.10 |
[백준] 1991번 : 트리 순회 (0) | 2020.11.10 |