N, M = map(int, input().split()) rectangle = [list(map(int, input().rstrip())) for _ inrange(N)]
max_edge = min(N, M) result = 0 for i inrange(N): for j inrange(M): for k inrange(max_edge): if i + k < N and j + k < M: if rectangle[i][j] == rectangle[i][j + k] == rectangle[i + k][j] == rectangle[i + k][j + k]: result = max(result, (k + 1) ** 2) print(result)
가장 처음에 N×N크기에 사탕을 채워 놓는다. 사탕의 색은 모두 같지 않을 수도 있다. 상근이는 사탕의 색이 다른 인접한 두 칸을 고른다. 그 다음 고른 칸에 들어있는 사탕을 서로 교환한다. 이제, 모두 같은 색으로 이루어져 있는 가장 긴 연속 부분(행 또는 열)을 고른 다음 그 사탕을 모두 먹는다.
사탕이 채워진 상태가 주어졌을 때, 상근이가 먹을 수 있는 사탕의 최대 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 보드의 크기 N이 주어진다. (3 ≤ N ≤ 50)
다음 N개 줄에는 보드에 채워져 있는 사탕의 색상이 주어진다. 빨간색은 C, 파란색은 P, 초록색은 Z, 노란색은 Y로 주어진다.
defcheck(arr): n = len(board) answer = 1 for i inrange(n): cnt = 1 for j inrange(1, n): # 열 순회하면서 연속 숫자 세기 if arr[i][j] == arr[i][j - 1]: # 이전것과 같으면 cnt+1 cnt += 1 else: # 이전 것과 다르면 cnt=1 초기화 cnt = 1 if cnt > answer: answer = cnt
cnt = 1 for j inrange(1, n): # 행 순회하면서 연속 숫자 세기 if arr[j][i] == arr[j - 1][i]: # 이전것과 같으면 cnt+1 cnt += 1 else: # 이전 것과 다르면 cnt=1 초기화 cnt = 1 if cnt > answer: answer = cnt
return answer
N = int(input()) board = [list(input().rstrip()) for _ inrange(N)] result = 0
for i inrange(N): for j inrange(N): if j + 1 < N: # 열 체크 board[i][j], board[i][j + 1] = board[i][j + 1], board[i][j] # 인접 교환 temp = check(board) if temp > result: result = temp board[i][j], board[i][j + 1] = board[i][j + 1], board[i][j] # 원복
if i + 1 < N: # 행 체크 board[i][j], board[i + 1][j] = board[i + 1][j], board[i][j] # 인접 교환 temp = check(board) if temp > result: result = temp board[i][j], board[i + 1][j] = board[i + 1][j], board[i][j] # 원복
while i < k: compare_list[i], compare_list[k] = compare_list[k], compare_list[i] i += 1 k -= 1
print(*compare_list)
------------메모리초과 import sys from itertools import permutations
input = sys.stdin.readline
N = int(input()) compare_list = list(map(int, input().split())) num_list = [i for i inrange(1, N + 1)]
perm_list = list(permutations(num_list)) for i inrange(len(perm_list)): iflist(perm_list[i]) == compare_list: if i==0: print(-1) else: for num in perm_list[i-1]: print(num, end=" ")
if bracket == ')': tmp = 0 while stack: top = stack.pop() if top == '(': if tmp == 0: stack.append(2) else: stack.append(tmp * 2) break elif top == '[': return0 else: tmp += int(top)
elif bracket == ']': tmp = 0 while stack: top = stack.pop() if top == '[': if tmp == 0: stack.append(3) else: stack.append(tmp * 3) break elif top == '(': return0 else: tmp += int(top) else: stack.append(bracket) return stack
if solution(input_string): print(0if'('in stack or'['in stack elsesum(stack)) else: print(0)