일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Apple
- 코딩트리조별과제
- HIG
- SWiFT
- HumanInterfaceGuidelines
- 애플디벨로퍼아카데미
- Xcode
- POSTECH
- 1935
- 코드트리
- Playground #Swift
- Algorithm
- HumanInterfaceGuideline
- AppleDeveloperAcademy
- 코딩테스트
- 백준
Archives
- Today
- Total
WonniOS
[코드트리 조별과제] IL - 십자 모양 폭발 본문
문제
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)]
'Algorithm' 카테고리의 다른 글
[Swift] 백준 11656번 : 접미사 배열 (0) | 2023.04.24 |
---|---|
[Swift] 백준 10820번: 문자열 분석 (0) | 2023.04.07 |
[Swift] 백준 10808번: 알파벳 개수 (0) | 2023.04.06 |
[Swift] 11. 백준 1935번: 후위 표기식2 (0) | 2023.04.05 |
[Swift] 10. 백준 17298번: 오큰수 (0) | 2023.04.04 |