[알고리즘/백준] 3085: 사탕 게임(python)

모든 경우를 다 돌아야한다...
처음에는 N-1경우로 놓고 풀었더니 마지막줄이 경우로 들어가지 않았다...
행의 i+1이 N을 넘어가면 바꾸지않고 열의 i+1이 N을 넘어가면 바꾸지 않는게 핵심이다...

def candy_count():
    ans = 1
    for i in range(N):
        row_cnt = 1
        col_cnt = 1
        for j in range(1, N):
            if a[i][j] == a[i][j - 1]:
                row_cnt += 1
            else:
                row_cnt = 1
            if row_cnt > ans:
                ans = row_cnt

            if a[j][i] == a[j - 1][i]:
                col_cnt += 1
            else:
                col_cnt = 1
            if col_cnt > ans:
                ans = col_cnt
    return ans


N = int(input())
a = [list(input()) for _ in range(N)]
ans = 0
cnt = 0
for i in range(N):
    for j in range(N):
        if j + 1 < N:
            a[i][j], a[i][j + 1] = a[i][j + 1], a[i][j]
            cnt = candy_count()
            if cnt > ans:
                ans = cnt
            a[i][j], a[i][j + 1] = a[i][j + 1], a[i][j]
        if i + 1 < N:
            a[i][j], a[i + 1][j] = a[i + 1][j], a[i][j]
            cnt = candy_count()
            if cnt > ans:
                ans = cnt
            a[i][j], a[i + 1][j] = a[i + 1][j], a[i][j]
print(ans)

좋은 웹페이지 즐겨찾기