Coding Cantabile

[BOJ] #1051_숫자 정사각형(Python3, 파이썬) 본문

Coding Test/BOJ

[BOJ] #1051_숫자 정사각형(Python3, 파이썬)

Gracekim 2023. 4. 4. 15:47

본 게시글은 백준 저지 알고리즘 문제를 '파이썬, Python3' 언어로 풀이한 내용을 주관적으로 정리하였으며, 내용과 관련된 코드리뷰 및 피드백 환영합니다.

티어

Silver IV

문제 출처

https://www.acmicpc.net/problem/1051


풀이

import sys 
input = sys.stdin.readline

def find_squre(s):
    for i in range(N-s+1):
        for j in range(M-s+1):
            if li[i][j] == li[i][j+s-1] == li[i+s-1][j] == li[i+s-1][j+s-1]:
                return True

    return False


N, M = map(int, input().split())
li = [list(map(int, list(input().rstrip()))) for _ in range(N)]

size = min(N,M)

for k in range(size, 0, -1):
    if find_squre(k):
        print(k**2)
        break

size에 N과 M 중 둘 중 더 작은 수를 넣어주고(정사각형이기 때문에 더 큰 수로 만들어지는 사각형일 수 없기 때문이다.) 정사각형을 2차원 배열에 저장해주고, 더 큰 수부터 하나씩 탐색해준다.