방명록
- [코드트리] 십자가 모양의 지속적 폭발2024년 06월 20일에 업로드 된 글입니다.
https://www.codetree.ai/missions/2/problems/cross-shape-continuous-bomb?&utm_source=clipboard&utm_medium=text
🔷 나의 구현 스케치
0행부터 n행까지 주어진 열의 값이 0이 아닌 첫 행을 찾아 bomb() 을 수행한다. bomb은 선택된 칸에 적혀있는 크기만큼 십자가 모양의 터지는 것을 의미하는데, 이는 배열 범위안에 있는 십자가 모양의 크기의 수들을 0으로 한다.
이후 down 함수를 통해 각 열을 n행부터 1행까지 확인하며 빈행은 한칸 윗 행의 값을 아래로 내리고 윗 행을 0으로 두어 중력이 작용하는 것을 구현한다.
🔷 나의 구현 코드
def in_range(x,y): return 0<=x<n and 0<=y<n def bomb(x,y, value): for dx,dy in zip(dxs, dys): nx,ny = x,y grid[x][y] = 0 for _ in range(value): nx,ny = nx+dx, ny+dy if in_range(nx,ny): grid[nx][ny] = 0 else: break down() def down(): for col in range(n): for row in range(n-1,0,-1): if not grid[row][col]: grid[row][col],grid[row-1][col] = grid[row-1][col],0 n,m = map(int,input().split()) grid = [list(map(int,input().split())) for _ in range(n)] dxs, dys = [0,1,0,-1], [1,0,-1,0] for _ in range(m): col = int(input()) col -= 1 for row in range(n): if grid[row][col]: bomb(row, col, grid[row][col]-1) break for row in grid: print(*row)
'코딩테스트 > ✳️코드트리' 카테고리의 다른 글
[코드트리] 단 한 번의 2048 시도 (0) 2024.06.20 [코드트리] 최단 Length 인코딩 (0) 2024.06.20 [코드트리] 1차원 폭발 게임 (0) 2024.06.19 [코드트리] 기울어진 직사각형의 회전 (0) 2024.06.19 [코드트리] 2차원 바람 (2) 2024.06.13 다음글이 없습니다.이전글이 없습니다.댓글