[๋ฐฑ์ค€-3085] ์‚ฌํƒ• ๊ฒŒ์ž„ / Python

๐Ÿ“š Problem Solving/Baekjoon

 

3085๋ฒˆ: ์‚ฌํƒ• ๊ฒŒ์ž„

์˜ˆ์ œ 3์˜ ๊ฒฝ์šฐ 4๋ฒˆ ํ–‰์˜ Y์™€ C๋ฅผ ๋ฐ”๊พธ๋ฉด ์‚ฌํƒ• ๋„ค ๊ฐœ๋ฅผ ๋จน์„ ์ˆ˜ ์žˆ๋‹ค.

www.acmicpc.net

import sys

input = sys.stdin.readline

n = int(input())
color = [list(map(str, input().rstrip())) for _ in range(n)]


def check(color):
    cnt = 0
    for i in range(n):
        rowCnt = 1
        colCnt = 1
        for j in range(n - 1):
            if color[i][j] == color[i][j + 1]:
                rowCnt += 1
            else:
                cnt = max(cnt, rowCnt)
                rowCnt = 1
            if color[j][i] == color[j + 1][i]:
                colCnt += 1
            else:
                cnt = max(cnt, colCnt)
                colCnt = 1
        cnt = max(cnt, rowCnt, colCnt)

    return cnt


answer = 0
for i in range(n):
    for j in range(n - 1):
        if color[i][j] != color[i][j + 1]:
            color[i][j], color[i][j + 1] = color[i][j + 1], color[i][j]
            answer = max(answer, check(color))
            color[i][j], color[i][j + 1] = color[i][j + 1], color[i][j]
        if color[j][i] != color[j + 1][i]:
            color[j][i], color[j + 1][i] = color[j + 1][i], color[j][i]
            answer = max(answer, check(color))
            color[j][i], color[j + 1][i] = color[j + 1][i], color[j][i]

print(answer)

 

ํ•ด์„ค

ํ–‰๊ณผ ์—ด ๋ณ„๋กœ ํ˜„์žฌ ๊ฐ’์„ ๋‹ค์Œ ๊ฐ’๊ณผ ๋ฐ”๊ฟ”์ค€๋‹ค. check ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ™์€ ์›์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ€์žฅ ๊ธด ๊ธธ์ด๋ฅผ ๊ตฌํ•œ๋‹ค. check ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋ฐ”๊ฟ”์ค€ ๊ฐ’์„ ์›๋ž˜๋Œ€๋กœ ๋Œ๋ฆฐ๋‹ค.