[프로그래머스] Lv 0 2차원으로 만들기 - Python

2022. 12. 25. 18:26·Programming/알고리즘
728x90

1.문제

https://school.programmers.co.kr/learn/courses/30/lessons/120842

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요.

num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다.

2. 제한사항

3. Python code

import numpy as np

def solution(num_list, n):
    answer = np.array(num_list).reshape(-1, n)
    return answer.tolist()

numpy array로 변환한 뒤 reshape을 이용했다.

answer의 형이 numpy.ndarray라 tolist()로 list로 형변환해서 return 해준다.

 

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, 정수)는 정수 만큼 열을 생성하고 행을 알아서 지정해준다.

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)도 마찬가지로 사용가능하다.

 

저작자표시 비영리 변경금지 (새창열림)
'Programming/알고리즘' 카테고리의 다른 글
  • [프로그래머스] Lv 0 배열 회전시키기 - Python
  • [프로그래머스] Lv 0 팩토리얼 - Python
  • [프로그래머스] Lv 0 구슬을 나누는 경우의 수 - Python
  • [프로그래머스] Lv 0 모스부호 (1) - Python
해치
해치
뭐라도 하자
  • 해치
    hi there
    해치
  • 글쓰기 관리자
  • 전체
    오늘
    어제
    • ALL (70)
      • Programming (62)
        • Python (14)
        • SQL (13)
        • 알고리즘 (35)
      • Framework (4)
        • Airflow (3)
        • Django (1)
      • Infra (3)
        • Docker (3)
        • Linux (0)
      • AWS (0)
      • Dashboard (1)
  • 블로그 메뉴

    • 링크

    • 인기 글

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    해치
    [프로그래머스] Lv 0 2차원으로 만들기 - Python
    상단으로

    티스토리툴바