문제 보자마자 무지성 구현. 한칸씩 이동 이동 멈추면 반복문 종료.
다른 사람들은 0 빼고 1,2만 새 배열에 담아서 switch바꾸는 형식으로 풀었더라. 상태1에서 2를 만나면 1더하는 식으로.
import sys
sys.stdin = open('input.txt')
def move_block():
check = 0
new_struck = 0
for i in range(N):
for j in range(N):
if not i == 99 and matrix[i][j] == 1:
if not matrix[i+1][j]:
matrix[i][j], matrix[i+1][j] = matrix[i+1][j], matrix[i][j]
check = 1
elif matrix[i+1][j] == 1:
matrix[i][j] = 0
check = 1
else:
matrix[i][j],matrix[i+1][j] = 0, 0
new_struck += 1
check = 1
elif not i == 0 and matrix[i][j] == 2:
if not matrix[i-1][j]:
matrix[i][j], matrix[i - 1][j] = matrix[i - 1][j], matrix[i][j]
check = 1
elif matrix[i-1][j] == 2:
matrix[i][j] = 0
check = 1
else:
matrix[i][j],matrix[i-1][j] = 0, 0
new_struck += 1
check = 1
return check, new_struck
for test in range(1,11):
N = int(input())
# 파란색은 N 쪽으로 빨간색은 S 쪽으로 교착상태의 갯수?
matrix = [list(map(int, input().split())) for _ in range(N)]
answer = 0
flag = 1
while flag:
flag, check_point = move_block()
answer += check_point
print(f'#{test} {answer}')
'practivceAlgorithm > swexpertacademy' 카테고리의 다른 글
[SWEA][Python] 5186 이진수2 (0) | 2021.09.19 |
---|---|
[SWEA][Python] 5185 이진수 (0) | 2021.09.19 |
[SWEA][Python] 1226 미로1 (0) | 2021.08.25 |
[SWEA][Python] 1225 암호생성기 (0) | 2021.08.25 |
[SWEA][Python] 1223 계산기2 (0) | 2021.08.24 |