알고리즘 문제 풀이: 파이썬/BOJ

[BOJ_1051] 숫자 정사각형

hueco 2022. 7. 9.

 

📌 문제 링크: https://www.acmicpc.net/problem/1051

 

1051번: 숫자 정사각형

N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행

www.acmicpc.net

 

내 풀이(Success) :

 

🧐 Review:

 두 번째 for문에서 len(rectangle[i])을 m으로 변경하는 것이 좀 더 깔끔한 코드가 될 것 같다.

 

🚩 Idea:

 - n과 m의 길이가 50이하의 수로 완전 탐색을 이용해 모든 경우의 수를 확인해도 시간 초과가 발생하지 않을 것 같다.

 - 정사각형의 최소 크기(넓이)는 1이므로 area에 해당 값을 넣고 시작한다.

 - 정사각형의 꼭짓점의 원소를 비교하는 문제라서 n과 m 중에서 작은 값을 정사각형의 최대 길이(k)로 정한다.

 - 직사각형의 [i][j]원소와의 거리인 l를 기준으로 k보다 작은 값인 경우에 이중 for문으로 통해 모든 경우의 수를 탐색한다.

   - 탐색하는 동안 원본 직사각형의 가로와 세로의 길이가 넘지 않는 동안, 4개의 꼭짓점의 값을 비교해서 모두 같다면,

    -  그 때의 정사각형의 넓이를 구해 기존 area와 비교해 더 큰 값을 area에 넣는다.

 - 반복문이 종료되면 area를 출력한다.

 

 
 
 
 

'알고리즘 문제 풀이: 파이썬 > BOJ' 카테고리의 다른 글

[BOJ_1235] 학생 번호  (0) 2022.07.10
[BOJ_2839] 설탕 배달  (0) 2022.07.10
[BOJ_4796] 캠핑  (0) 2022.07.08
[BOJ_9655] 돌 게임  (0) 2022.07.08
[BOJ_9625] BABBA  (0) 2022.07.07

댓글