WonniOS

[코드트리 조별과제] IL - 십자 모양 폭발 본문

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)]