https://www.acmicpc.net/problem/1025
1025번: 제곱수 찾기
첫째 줄에 N, M이 주어진다. 둘째 줄부터 N개의 줄에는 표에 적힌 숫자가 1번 행부터 N번 행까지 순서대로 한 줄에 한 행씩 주어진다. 한 행에 적힌 숫자는 1번 열부터 M번 열까지 순서대로 주어지
www.acmicpc.net
등차수열의 공차를 설정해 완전탐색하여 set에 add하고
set에서 제곱수이면 현재 max값과 비교하여 저장하였다.
def make(y, x, dy, dx, num):
yy = y + dy
xx = x + dx
if dy == 0 and dx == 0:
made.add(num)
return
if 0 <= yy < n and 0 <= xx < m:
num = num*10 + arr[yy][xx]
make(yy, xx, dy, dx, num)
made.add(num)
n, m = map(int,input().split())
arr = [list(map(int,input())) for _ in range(n)]
made = set()
for y in range(n):
for x in range(m):
for dy in range(-n, n):
for dx in range(-m, m):
make(y, x, dy, dx, arr[y][x])
answer = -1
for x in made:
if x**0.5 == int(x**0.5):
answer = max(answer, x)
print(answer)
'백준(BOJ)' 카테고리의 다른 글
[Python/파이썬] - 백준(BOJ) 16235번 : 나무 재테크 (0) | 2022.06.03 |
---|---|
[Python/파이썬] - 백준(BOJ) 3709번 : 레이저빔은 어디로 (0) | 2022.06.03 |
[Python/파이썬] - 백준(BOJ) 1027번 : 고층 건물 (0) | 2022.05.31 |
[Python/파이썬] - 백준(BOJ) 1781번 : 컵라면 (0) | 2022.05.28 |
[Java/자바] - 백준(BOJ) 1068번 : 트리 (0) | 2022.05.26 |