본문 바로가기
  • 안녕하세요,,, 안녕히가세요,,,,
프로그램/코딩테스트

백준 3085 사탕 게임

by 차보루타 2022. 6. 13.

 

import sys

input = sys.stdin.readline

answer = 1
num = int(input())

num_list = [list(input()) for _ in range(num)]

def find_max_count() :
    global answer
    
    for i in range(num) :
        count = 1
        for j in range(1,num) :
            if num_list[i][j] == num_list[i][j-1] :
                count += 1
                answer = max(answer, count)
            else : 
                count = 1
                
    for j in range(num) :
        count = 1
        for i in range(1,num) :
            if num_list[i][j] == num_list[i-1][j] :
                count += 1
                answer = max(answer, count)
            else : 
                count = 1
                
for i in range(num) :
    for j in range(num) :
        if i+1 < num :
            num_list[i][j], num_list[i+1][j] = num_list[i+1][j], num_list[i][j]
            find_max_count()
            num_list[i][j], num_list[i+1][j] = num_list[i+1][j], num_list[i][j]
        
        if j+1 < num :
            num_list[i][j], num_list[i][j+1] = num_list[i][j+1], num_list[i][j]
            find_max_count()
            num_list[i][j], num_list[i][j+1] = num_list[i][j+1], num_list[i][j]
            
print(answer)

 

완전 탐색을 이용해 해결했다.

 

첫 지점부터 끝까지 오른쪽 요소와 교환, 아래쪽 요소와 교환을 거치며 한 칸씩 검사한다.

 

같은 줄에 있는 요소들을 검사하여 최대 값을 구한다.

 

 

'프로그램 > 코딩테스트' 카테고리의 다른 글

백준 1449 수리공 항승  (0) 2022.06.13
백준 1931 회의실 배정  (0) 2022.06.13
백준 10448 유레카 이론  (0) 2022.06.13
백준 3040 백설 공주와 일곱 난쟁이  (0) 2022.06.13
백준 2075 N번째 큰 수  (0) 2022.06.13

댓글