4/5学習問題
10950 ワード
最初の問題
https://www.acmicpc.net/problem/1051
->数字の正方形
答えは...エラー
ちょっと変えただけ...もういい...理由はまた今度探します.
今日はここまでです.
https://www.acmicpc.net/problem/1051
->数字の正方形
1-1番解題コード
import sys
# N x M 값 입력
n, m = map(int, sys.stdin.readline().split())
# 사각형 꼭짓점들의 값 입력
rect = [list(map(int, sys.stdin.readline().strip())) for _ in range(n)]
# N과 M 값에서 최솟값을 기준으로 정사각형이 최대가 될 수 있음
d = min(n, m)
# 정사각형의 최대값은 1부터 시작
max_size = 1
# i번째에서
for i in range(n):
# j번째에서
for j in range(m):
# n, m 최솟값 중 최대 크기의 정사각형을 찾기 위해
for k in range(d):
# 만약 [i][j]번째의 값과 [i-k][j]번째 값과
#[i][j-k]번째 값과 [i-k][j-k]값이 같다면
# 가장 큰 정사각형을 찾을 수 있다.
if rect[i][j] == rect[i-k][j] == rect[i][j-k] == rect[i-k][j-k]:
# k 값으로 생각했더니, 값이 전부 1씩 작게 나옴..
max_size = max(max_size, (k+1)**2)
print(max_size)
=======================================================答えは...エラー
1-2番解題コード
import sys
# N x M 값 입력
n, m = map(int, sys.stdin.readline().split())
# 사각형 꼭짓점들의 값 입력
rect = [list(map(int, sys.stdin.readline().strip())) for _ in range(n)]
# N과 M 값에서 최솟값을 기준으로 정사각형이 최대가 될 수 있음
d = min(n, m)
# 정사각형의 최대값은 1부터 시작
max_size = 1
# i번째에서
for i in range(n):
# j번째에서
for j in range(m):
# n, m 최솟값 중 최대 크기의 정사각형을 찾기 위해
for k in range(d):
# 만약 [i][j]번째의 값과 [i+k][j]번째 값과
#[i][j+k]번째 값과 [i+k][j+k]값이 같다면
# 가장 큰 정사각형을 찾을 수 있다.
if ((i + k) < n) and ((j + k) < m) and
(rect[i][j] == rect[i][j + k] == rect[i + k][j] == rect[i + k][j + k]):
# k 값으로 생각했더니, 값이 전부 1씩 작게 나옴..
max_size = max(max_size, (k+1)**2)
print(max_size)
=======================================================ちょっと変えただけ...もういい...理由はまた今度探します.
今日はここまでです.
Reference
この問題について(4/5学習問題), 我々は、より多くの情報をここで見つけました https://velog.io/@hey_junie/45-스터디-문제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol