프로그래머스_Lv0_2차원으로 만들기 _파이썬

Today Jeeho Learned·2022년 12월 16일
0

알고리즘

목록 보기
30/38
post-thumbnail

문제 출처

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

내 답안


def solution(number_list, n):
    
    answer = []
    answer2 = []
    for i in range(len(number_list)):
        answer.append(number_list[i])
        if len(answer) % n == 0:
            answer2.append(answer)
            answer = []
    return answer2

    

풀이 정리

  • 문제를 보고서 주어진 배열을 주어진 숫자만큼 잘라서 2차원 배열을 만들어내는 것으로 생각했다.
  • 어떻게 짤라줘야 할지 꽤나 고민했다.
  • 먼저 2차원 배열이 어떻게 구성되는지를 알아보았다. 1차원배열 answer = [] , answer2 = []가 있다고 가정하면 answer.append(answer2)을 해주면 answer가 2차원배열형태로 배열이 들어가진다. 이것을 활용해보았다.
  • number_list의 값을 계속해서 answer에 넣어주고, answer의 길이값이 n값이 될때 answer2 []에 append를 해주고, 다음에 다시 answer []을 비워주는 것이다.
  • 이렇게하면 처음에 입력받는 N만큼의 배열 크기를 자를수있었다.

다른풀이

def solution(num_list, n):
    return [num_list[ix-n:ix] for ix in range(n, len(num_list)+1, n)]
  • 처음에 보고서 이해가 잘안되서직접 코딩을해보았다.
for i in range(n,len(number_list)+1,n):
    answer.append(number_list[i-n:i])
print(answer)

이렇게 이해 하게되었다. 이렇게 값을 빼주면서 인덱스를 고려하는 것은 아직 나에게 너무 어려운 것 같다 ㅠㅠ 전혀 생각하지 못하는 부분인데 어떻게 저렇게 코드를 작성할 수 있을까??

profile
기록해야 (살아)남는다 !

0개의 댓글