Algorithm
[코드트리 조별과제] IL - 십자 모양 폭발
Wonni
2024. 7. 22. 21:23
문제
https://www.codetree.ai/missions/2/problems/cross-shape-bomb/description
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
제출 코드
n = int(input())
arr = [list(map(int, input().split())) for _ in range(n)]
r,c = map(int, input().split())
r -= 1
c -= 1
temp = []
# 폭탄의 크기
count = arr[r][c] - 1
# 십자 모양으로 폭탄 터트리기
for i in range(max(0, r-count), min(n, r+count+1)):
arr[i][c] = 0
for j in range(max(0, c-count), min(n, c+count+1)):
arr[r][j] = 0
for col in range(n):
for row in range(n-1, -1, -1):
if arr[row][col] != 0:
temp.append(arr[row][col])
for row in range(n-1, -1, -1):
if temp:
arr[row][col] = temp.pop(0)
else:
arr[row][col] = 0
# 결과 출력
for row in arr:
print(' '.join(map(str, row)))
새롭게 알게된 점
1. max와 min을 이용한 최소, 최대 범위 파악
2. 2차원 배열 선언 : arr = [list(map(int, input().split())) for _ in range(n)]