파이썬 배열 리스트 이중 loop를 사용해서 세로(4열)로 나오게 하고 싶은데

조회수 881회

퍼즐의 출력결과가

[[1,2,3,4], 
[5,6,7,8],
[9,10,11,12],
[13,14,15,16]]

이중 loop를 사용해서 이렇게 세로(4열)로 나오게 하고 싶은데 몇시간 동안 고민해도 답이 안나오네요. 고수님들 도와주세요.

출력 결과가 한열로 나오면 안됩니다.

puzzle = [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]
def puzzle_view(puzzle):
    puzzle_list = []
    for i in puzzle:
        for j in i:
            puzzle_list.append(j)
    return puzzle_list

1 답변

  • 꼭 이중루프를 이용해야 하나요?

    아래 샘플은 numpy 를 이용한 것과 zip 함수를 이용해서 구한샘플입니다.

    이중루프 추가

    import numpy as np
    puzzle = [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]]
    np.array(puzzle).T.tolist()
    [[1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [4, 8, 12, 16]]
    
    list(zip(*puzzle))
    [(1, 5, 9, 13), (2, 6, 10, 14), (3, 7, 11, 15), (4, 8, 12, 16)]
    
    result = [[], [], [], []]
    for l in puzzle:
        for i, n in enumerate(l):
            result[i].append(n)
    [[1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [4, 8, 12, 16]]
    
    
    • numpy를 활용하면 쉽다는 것은 알고 있는데 문제에 이중루프를 사용하라고 나와있어서요.. godmin18 2020.4.19 11:46

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)