2차원으로 만들기-프로그래머스(python)

hh_mon__a·2023년 1월 4일
0

코딩테스트

목록 보기
6/14

문제


코딩

def solution(num_list, n):
    return [num_list[i:i+n] for i in range(0, len(num_list),n)]
  • n이 3이고 len(num_list)가 9일 때,
  • for i in range(0,len(num_list),n)에서 i, i+n을 출력해보면
  • 0 3 / 3 6/ 6 9 이렇게 출력된다.
  • 그럼 리스트 인덱스 성질을 이용해 0~2, 3~5, 6~8 인덱스를 출력해준다.

다른 사람 풀이

def solution(num_list, n):
    return [num_list[ix-n:ix] for ix in range(n, len(num_list)+1, n)]
    
-----------------------------------------------------------------



import numpy as np
def solution(num_list, n):
    li = np.array(num_list).reshape(-1,n)
    return li.tolist()
  • np.array(num_list).reshape(-1,n)
  • 이런 식으로 만들어준다! 대박!
  • reshape(-1,n)에서 -1(행)이 뜻하는 것은 열(n)의 값은 특정 정수로 지정이 되어있을 때, 남은 배열의 길이와 남은 차원으로부터 추정해서 알아서 지정하라는 의미.
  • tolist()는 배열형태를 리스트로 바꿔주는 기능이다.
profile
데이터분석/데이터사이언스/코딩

0개의 댓글