Algorithm(CodeTree, Python)/Simulation
[코드트리] 떨어지는 1자 블록 Python
kurooru
2023. 1. 22. 12:09
# n, m, k 입력
n, m, k = map(int, input().split())
k -= 1
# grid 입력
grid = [
list(map(int, input().split()))
for _ in range(n)
]
# 함수들
# get_dist(c)
def get_dist(c):
for r in range(n):
# 블록이 있으면
if grid[r][c] == 1:
# 반환
return r
# 바닥에 닿는 경우
return n
# get_drop_dist(s, e)
def get_drop_dist(s, e):
# dist_list
dist_list = []
# 떨어질 블록 기준
for i in range(s, e):
dist_list.append(get_dist(i))
# 반환
return min(dist_list) - 1
# 설계
# drop_dist -> 내려갈 수 있는 최대 거리
drop_dist = get_drop_dist(k, k+m)
# 내려갈 거리에 넣어주기
for c in range(k, k+m):
grid[drop_dist][c] = 1
# 출력
for i in range(n):
for j in range(n):
print(grid[i][j], end=' ')
print()