문제 설명
정수 배열 num_list와 정수 n이 매개변수로 지정됩니다. 아래에 설명된 대로 solve 함수를 완성하여 num_list를 2차원 배열로 반환합니다.
num_list는 길이가 8인 (1, 2, 3, 4, 5, 6, 7, 8)이고 n은 2이므로 다음과 같이 num_list를 2*4 배열로 변경합니다. 2D로 변환할 때 num_list에서 요소를 분할합니다. n만큼 오버하고 2D 배열로 변경합니다.
| 번호 목록 | N | 결과 |
| (1, 2, 3, 4, 5, 6, 7, 8) | 2 | ((1, 2), (3, 4), (5, 6), (7, 8)) |
제한
- num_list의 길이는 n의 배수입니다.
- 0 ≤ num_list 길이 ≤ 150
- 2 ≤ n < num_list의 길이
I/O 예시
| 번호 목록 | N | 결과 |
| (1, 2, 3, 4, 5, 6, 7, 8) | 2 | ((1, 2), (3, 4), (5, 6), (7, 8)) |
| (100, 95, 2, 4, 5, 6, 18, 33, 948) | 삼 | ((100, 95, 2), (4, 5, 6), (18, 33, 948)) |
I/O 예시 설명
I/O 예제 #1
num_list는 길이가 8인 (1, 2, 3, 4, 5, 6, 7, 8)이고 n이 2이므로 2 * 4 배열로 변경된다((1, 2), (3, 4) ), (5, 6), (7, 8)).
I/O 예제 #2
num_list는 길이가 9인 (100, 95, 2, 4, 5, 6, 18, 33, 948)이고 n이 3이므로 3*3 배열((100, 95, 2), (4, 5, 6), (18, 33, 948)).
코드
import numpy as np
def solution(num_list, n):
answer = np.array(num_list).reshape(-1,n)
return answer.tolist()
포인트
numpy 배열로 변환한 후 reshape를 사용했습니다.
응답 유형이 numpy.ndarray이므로 tolist()는 이를 목록으로 캐스팅하고 반환합니다.
reshape() 사용
numpy의 reshape(x, x)는 reshape(x 행, x 열)의 2차원 배열로 변환합니다.
l.reshape(2,6)
#(( 0 1 2 3 4 5)
# ( 6 7 8 9 10 11))
l.reshape(4,3)
# (( 0 1 2)
# ( 3 4 5)
# ( 6 7 8)
# ( 9 10 11))
reshape(-1, integer)는 정수 열을 생성하고 자동으로 행을 할당합니다.
l = np.arange(12)
#l : (0 1 2 3 4 5 6 7 8 9)
l.reshape(-1, 4)
# (( 0 1 2 3)
# ( 4 5 6 7)
# ( 8 9 10 11))
l.reshape(-1, 6)
# (( 0 1 2 3 4 5)
# ( 6 7 8 9 10 11))
reshape(정수, -1)도 사용할 수 있습니다.
![[Python] 백준 실버3_문자열 [Python] 백준 실버3_문자열](https://if.egegg.kr/wp-content/plugins/contextual-related-posts/default.png)