소스코드
n = int(input())
board = []
ans =0
for _ in range(n):
candy = list(map(str,input()))
board.append((candy))
def count_candy(board): #개수세는 함수
N = len(board)
max_candy = 1
for i in range(N):
cnt = 1
for j in range(1,N):
if board[i][j] == board[i][j-1]:
cnt += 1
else :
cnt = 1
if max_candy < cnt :
max_candy = cnt
cnt = 1
for j in range(1,N):
if board[j][i] == board[j-1][i]:
cnt += 1
else :
cnt = 1
if max_candy < cnt :
max_candy = cnt
return max_candy
for i in range(n):
for j in range(n):
if j + 1 < n: #가로로 바꿔가며
board[i][j],board[i][j+1] = board[i][j+1],board[i][j]
temp = count_candy(board)
if temp > ans :
ans = 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 = count_candy(board)
if temp > ans :
ans = temp
board[i][j],board[i+1][j] = board[i+1][j],board[i][j]
print(ans)
알고리즘
brute force 알고리즘은 진짜 무식하게 FOR문 다 돌려서 해보면 된다는 것을 알았다.
1. 갯수를 세는 함수를 만든 다음
2. 가로로 바꿔가며 갯수를 세고, 세로로 바꿔가며 갯수를 세고
3. 원래대로 되돌려 놓는다.
'Coding test' 카테고리의 다른 글
[백준/1182/파이썬] 부분수열의 합 (0) | 2023.02.05 |
---|---|
[백준/6064/파이썬] 카잉 달력 (0) | 2023.01.28 |
[백준/1476/파이썬] 날짜계산 - 브루트포스 (0) | 2023.01.26 |
[백준/1339/파이썬] 단어수학 - 그리디 (0) | 2023.01.25 |
[백준/1107/파이썬] 리모컨 - Brute force (0) | 2023.01.24 |