파이썬은 아름답다. 생각나는대로 쓰면 그게 파이썬 문법이다.
# 2차원 배열의 특정 크기만큼 Slicing하기
2차원 배열에서 특정 크기를 slicing하기 위해서는 일반적으로, 새로운 배열을 선언하여 각 자리의 값을 `append` 하는 방식으로 구현할 수 있다.
# 크기가 3 * 3인 sub array 만들기
square = []
for x in range(i, i + 3):
for y in range(j, j + 3):
square.append(board[x][y])
만약, 2차원 배열의 가능한 모든 값들에 대해 가능한 모든 크기의 subArray를 만들어야 한다면 코드의 가독성이 저해된다.
for i in (0, 3, 6):
for j in (0, 3, 6):
# 크기가 3 * 3인 sub array 만들기
square = []
for x in range(i, i + 3):
for y in range(j, j + 3):
square.append(board[x][y])
따라서, 다음과 같이 선언하여 사용하면 훨씬 편리하게 사용가능하다.
for i in (0, 3, 6):
for j in (0, 3, 6):
# 크기가 3 * 3인 sub array 만들기
square = [[board[x][y] for x in range(i, i + 3)] for y in range(j, j + 3)]
전체 코드 (가능한 모든 크기의 subArray 만들기)
ARR_LEN = 10
SUB_ARR_LEN = 4
# 배열 짜르기
for i in range(0,ARR_LEN -SUB_ARR_LEN + 1):
for j in range(0,ARR_LEN -SUB_ARR_LEN + 1):
subarr = [[arr[row][col] for row in range(i,i+SUB_ARR_LEN)] for col in range(j,j+SUB_ARR_LEN)]
# Do Something With Subarr
# 약팁
1. 2차원 배열 출력하기
def print_2darr(array):
for arr in array:
print(*arr)
생기는 대로 입력하겠습니다~ (마지막 입력: 2024-10-10)
'PS' 카테고리의 다른 글
프로그래머스 전화번호 목록 JS 풀이 (0) | 2024.11.04 |
---|---|
Javascript PS 꿀팁 저장소 (0) | 2024.06.29 |