반응형
코드
import sys
def check(color):
count = 1
for i in range(n):
cnt = 1
for j in range(n-1):
if color[i][j] == color[i][j+1]:
cnt += 1
else:
cnt = 1
count = max(count,cnt)
for j in range(n):
cnt = 1
for i in range(n-1):
if color[i][j] == color[i+1][j]:
cnt += 1
else:
cnt = 1
count = max(count,cnt)
return count
n = int(input())
color = []
for _ in range(n):
color.append(list(sys.stdin.readline()))
max_cnt = 0
for i in range(n):
for j in range(n):
if j+1 < n:
color[i][j],color[i][j+1] = color[i][j+1],color[i][j]
max_cnt = max(max_cnt,check(color))
color[i][j],color[i][j+1] =color[i][j+1],color[i][j]
if i+1 < n:
color[i][j],color[i+1][j] = color[i+1][j],color[i][j]
max_cnt = max(max_cnt,check(color))
color[i][j],color[i+1][j] = color[i+1][j],color[i][j]
print(max_cnt)
설명
파이썬에서 두 변수 값을 바꾸려면
a,b = b,a
이렇게만 해주면 된다.
for문을 이용해서 인접한 사탕끼리 서로 자리를 바꿔준다. 바꾼 후 check 함수에서 행과 열에 같은 색으로 이루어져 있는 가장 긴 연속 부분을 찾는다. 그 다음에 다시 두 사탕을 바꿔서 원래 상태로 되돌려준다.
반응형
'알고리즘 > 완전탐색' 카테고리의 다른 글
[백준][Python] 14888번 연산자 끼워넣기 (0) | 2022.11.28 |
---|---|
[백준][Python] 9996번 한국이 그리울 땐 서버에 접속하지 (0) | 2022.07.28 |
[백준][Python] 1487번 물건 팔기 (0) | 2022.07.27 |
[백준][Python] 16951번 블록 놀이 (0) | 2022.07.27 |
[백준][Python] 5671번 호텔 방 번호 (0) | 2022.07.26 |
댓글