deo2kim
맞왜틀
deo2kim
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • 개발
    • Infra

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
deo2kim

맞왜틀

[python] 백준 - 1051. 숫자 정사각형
Algorithm Problem/Python

[python] 백준 - 1051. 숫자 정사각형

2020. 6. 8. 23:10
반응형

문제 해결

1. (부르트포스) 완전탐색 문제이다.

2. '가장 큰' 정사각형을 구하라고 했으므로 만들수 있는 최대 크기에서부터 하나씩 줄여나갔다.(시간 효율)

3. 네 꼭지점의 크기가 같을 때 return + break를 걸어주어 바로 탐색을 종료

 

+ 난이도가 적당한 2차원배열 + 완전탐색 문제이다.

소스 코드

def find_squre(s):
    # 정사각형의 꼭지점의 숫자 크기가 같은 경우를 찾는다.
    for i in range(n-s+1):
        for j in range(m-s+1):
            if numbers[i][j] == numbers[i][j+s-1] == numbers[i+s-1][j] == numbers[i+s-1][j+s-1]:
                return True

    return False


n, m = map(int, input().split())
numbers = [list(map(int, list(input()))) for _ in range(n)]

# size: 정사각형을 만들 수 있는 최대 크기
# size = m if n > m else size = n
if n > m:
    size = m
else:
    size = n

# 최대 크기부터 하나씩 줄여가며 시작
for k in range(size, 0, -1):
    # 네 꼭지점의 크기가 같은 정사각형을 찾았으면 True를 받아 넓이를 출력해주고 break
    if find_squre(k):
        print(k**2)
        break

 

출처: BACKJOON ONLINE JUDGE

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

 

1051번: 숫자 정사각형

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

www.acmicpc.net

문제

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

입력

첫째 줄에 N과 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 수가 주어진다.

출력

첫째 줄에 정답 정사각형의 크기를 출력한다.

 

반응형
저작자표시 비영리 변경금지

'Algorithm Problem > Python' 카테고리의 다른 글

[python] 백준 - 1697. 숨바꼭질  (0) 2020.06.23
[python] 백준 - 2178. 미로 탐색  (4) 2020.06.22
[python] SWEA - 1251. 하나로 / 1486. 장훈이의 높은 선반  (2) 2020.06.05
[python] SWEA - 1249. 보급로 / 5521. 상원이의 생일파티  (2) 2020.06.04
[python] 백준 - 16236. 아기 상어 (삼성 SW 역량 테스트 기출 문제)  (2) 2020.06.03
    'Algorithm Problem/Python' 카테고리의 다른 글
    • [python] 백준 - 1697. 숨바꼭질
    • [python] 백준 - 2178. 미로 탐색
    • [python] SWEA - 1251. 하나로 / 1486. 장훈이의 높은 선반
    • [python] SWEA - 1249. 보급로 / 5521. 상원이의 생일파티
    deo2kim
    deo2kim
    코딩 기록하기

    티스토리툴바