1번 문제.
https://www.acmicpc.net/problem/3085
-> 사탕 게임
import sys
# nxn 보드 크기 입력
n = int(sys.stdin.readline())
# 사탕 집어넣을 리스트
candies = []
# 먹을 사탕 갯수 값 초기화
candy_cnt = 1
# 사탕 색별 리스트에 담기
for _ in range(n):
candies.append(list(map(str, sys.stdin.readline())))
# 행의 사탕들 확인
def row_check():
global candy_cnt
# 2차원 리스트 안의 값을 하나하나 비교
for i in range(n):
row_count = 1 # 행 사탕 갯수 세기
for j in range(n-1):
# 행 값들을 비교
if candies[i][j] == candies[i][j+1]:
row_count += 1
# 상근이가 먹을 사탕 갯수는 최대 갯수
candy_cnt = max(row_count, candy_cnt)
else:
row_count = 1 # 이거 안하면 틀림.....
# 열의 사탕들 확인
def col_check():
global candy_cnt
# 2차원 리스트 안의 값을 하나하나 비교
for i in range(n):
col_count = 1 # 열 사탕 갯수 세기
for j in range(n-1):
# 열 값들을 비교
if candies[j][i] == candies[j+1][i]:
col_count += 1
# 상근이가 먹을 사탕 갯수는 최대 갯수
candy_cnt = max(col_count, candy_cnt)
else:
col_count = 1 # 이거 안하면 틀림.....
# 사탕 근접 위치 이동
for i in range(n):
for j in range(n-1):
# 만약 행 사이에서 근접 사탕 색이 다르다면
if candies[i][j] != candies[i][j+1]:
# 행 근접 위치 교환
candies[i][j], candies[i][j+1] = candies[i][j + 1], candies[i][j]
# 행 체크 -> 갯수 세고
row_check()
# 열 체크 -> 갯수 세고
col_check()
# 다시 제자리로 돌려놓음 -> 다시 안돌려놓으면 안됨!!
candies[i][j+1], candies[i][j] = candies[i][j], candies[i][j+1]
# 만약 열 사이에서 근접 사탕 색이 다르다면
if candies[j][i] != candies[j+1][i]:
# 행 근접 위치 교환
candies[j][i], candies[j+1][i] = candies[j+1][i], candies[j][i]
# 행 체크 -> 갯수 세고
row_check()
# 열 체크 -> 갯수 세고
col_check()
# 다시 제자리로 돌려놓음 -> 다시 안돌려놓으면 안됨!!
candies[j+1][i], candies[j][i] = candies[j][i], candies[j+1][i]
print(candy_cnt)
=======================================================
6번 틀림.... 겨우 겨우 블로그들 보면서 내 문제 해결
이중 for문을 볼 때 순서를 잘 파악할 것!!