파이썬은 아름답다. 생각나는대로 쓰면 그게 파이썬 문법이다.

 

# 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

+ Recent posts