[사탕게임]-3085번
My answer
def init(board,n,sums):
cnt=1
for i in range(n):
for j in range(n-1):
if(board[i][j]==board[i][j+1]):
cnt+=1
else:
sums.append(cnt)
cnt=1
if(cnt!=1):
sums.append(cnt)
cnt=1
return sums
def calc(board,n,sums):
tmp=copy.deepcopy(board)
for i in range(n):
for j in range(n-1):
if(tmp[i][j]!=tmp[i][j+1]):
tmp[i][j],tmp[i][j+1]=tmp[i][j+1],tmp[i][j]
coltmp=[k[j] for k in tmp]
sums=main(coltmp,n,sums)
coltmp=[k[j+1] for k in tmp]
sums=main(coltmp,n,sums)
coltmp=tmp[i]
sums=main(coltmp,n,sums)
tmp=copy.deepcopy(board)
def main(arr,n,sums):
cnt=1
for i in range(n-1):
if(arr[i]==arr[i+1]):
cnt+=1
else:
sums.append(cnt)
cnt=1
if(cnt!=1):
sums.append(cnt)
cnt=1
return sums
import copy # copy 모듈을 가져옴
n=int(input())
board,sums = [],[]
# 필수부분:board를 이중리스트로 만듦
for i in range(n):
tmp=input()
tmp=[i for i in tmp]
board.append(tmp)
# 처음옮기기 전 최대먹을 수 있는 사탕개수를 세기
init(board,n,sums)
board = list(map(list, zip(*board)))
init(board,n,sums)
calc(board,n,sums) #같은 행에 있는 것끼리 바꾸기(좌우)
board = list(map(list, zip(*board))) #board 전치
calc(board,n,sums) #같은 행에 있는 것끼리 바꾸기(상하)
print(max(sums))
Another answer
n=int(input())
a=[list(input()) for _ in range(n)]
result=1
def check():
global result
for i in range(n):
cnt=1
for j in range(1,n):
if a[i][j]==a[i][j-1]:
cnt+=1
result=max(cnt,result)
else:
cnt=1
for i in range(n):
cnt=1
for j in range(1,n):
if a[j][i]==a[j-1][i]:
cnt+=1
result=max(cnt,result)
else:
cnt=1
for i in range(n):
for j in range(1,n):
if a[i][j]!=a[i][j-1]:
a[i][j],a[i][j-1]=a[i][j-1],a[i][j]
check()
a[i][j],a[i][j-1]=a[i][j-1],a[i][j]
if a[j][i]!=a[j-1][i]:
a[j][i],a[j-1][i]=a[j-1][i],a[j][i]
check()
a[j][i],a[j-1][i]=a[j-1][i],a[j][i]
print(result)
더보기
나는 내 코드가 길고 쓸데없이 반복되는게 많아서 그냥 무식하게 푼 줄 알았는데, 원래 이렇게 푸는건가보다. 아래와 나랑 다른점은 난 board를 아예 전치시켜서 했는데 왜 그렇게 했지?그냥 i랑 j랑 바꿔서 풀면됐는데 그거 땜에 메모리도 많이 잡아먹고 시간도 함수를 한번씩 더 실행시키느라 오래걸렸나보다. 내일 수정해봐야겠다.
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python/백준] #2447 - [별 찍기-10] (0) | 2021.11.21 |
---|---|
[Python/백준] 기초문제들 2 (0) | 2021.11.20 |
[Python/백준] #1062 - [가르침] [try_again] (0) | 2021.11.16 |
[Python/백준] #14719 - [빗물] (0) | 2021.11.15 |
[Python/백준] #14888 - [연산자 끼워넣기] / #2504 -[괄호의 값] (0) | 2021.11.12 |