[1스4코2파] #138. LeetCode pattern 2022. Convert 1D Array Into 2D Array

gunny·2023년 5월 20일
0

코딩테스트

목록 보기
139/530
post-thumbnail

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[3코1파] 2023.01.04~ (138일차)
[4코1파] 2023.01.13~ (129일차)
[1스4코1파] 2023.04.12~ (40일차)
[1스4코2파] 2023.05.03 ~ (19일차)

Today :

2023.05.21 [138일차]
LeetCode Patterns
2022. Convert 1D Array Into 2D Array
https://leetcode.com/problems/convert-1d-array-into-2d-array/description/

2022. Convert 1D Array Into 2D Array

문제 설명

1차원의 형태인 integer 데이터 타입을 가진 원소들로 구성된 배열이 주어지고, 그 뒤에 2개의 integer인 m, n이 주어진다.
처음 주어진 배열을 original이라고 했을 때, 주어진 m이랑 n으로 mn인 2차원 배열로 return 한다.
주어진 배열에서 m
n 형태의 2차원 배열로 만들 수 없다면 빈 리스트를 retrun 함!

문제 풀이 방법

배열 나오면 아묻따 numpy 아닌교...
numpy reshape가 다 해결해주는데..
일단 numpy로 풀었고.. 그 뒤에 이제 본래 문제가 풀기를 희망하는 대로 풀어준다.

먼저, 조건문으로 주어진 배열의 길이가, 주어진 interger인 m,n의 곱과 같은지 확인해서 2차원 배열로 만들 수 있는지 부터 확인하고,
만들 수 없으면 빈리스트를 반환하고, 만들 수 있다면 for 문을 돌아 original에 있는 원소를 m*n의 배열로 만드는데!
이때 for 문을 돌면서의 조건을 0부터, original의 배열의 길이까지, 주어진 n의 interval로 돌면서 추가한다!

내 코드

일단은 넘파이로 갈겨버린 나의 풀이

import numpy as np

class Solution:
    def construct2DArray(self, original: List[int], m: int, n: int) -> List[List[int]]:
        try : 
            return np.array(original).reshape(m,n).tolist()
            
        except :
            return []

증빙

여담

솔직히 matrix 같이 생긴 배열 나오면 numpy 쓰면 쉬운데...
numpy.reshape가 다 해결해준다고..
슬라이싱으로 풀어야 하는 알고리즘 문제 퉤퉤퉤

class Solution:
    def construct2DArray(self, original: list[int], m: int, n: int) -> list[list[int]]:
        ans = []
        
        if len(original) == m*n:
            for i in range(0, len(original), n):
                ans.append(original[i:i+n])
                
        return ans
profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글