[골드5] 1025번 : 제곱수 찾기

Quesuemon·2021년 4월 7일
0

코딩테스트 준비

목록 보기
67/111

🛠 문제

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


👩🏻‍💻 해결 방법

숫자의 위치인 행과 열이 등차수열을 이루는 숫자 조합 중에 가장 큰 제곱수를 찾는 문제였다
가능한 등차수열의 범위는 (-row, row), (-col, col)이므로 해당 범위에 해당하는 등차수열을 하나씩 확인해주며 최댓값을 갱신해주었다

소스 코드

import math
row, col = map(int, input().split())
data = [list(input()) for _ in range(row)]

answer = -1
for i in range(row):
  for j in range(col):
    for rd in range(-row, row):
      for rc in range(-col, col):
        if rd == 0 and rc == 0: continue

        string = []
        n = i
        m = j

        while (0<=n<row) and (0<=m<col):
          string.append(data[n][m])

          val = math.sqrt(int("".join(string)))
          if val == int(val):
            answer = max(answer, int(val)**2)
          
          n += rd
          m += rc

print(answer)

0개의 댓글

관련 채용 정보