본문 바로가기
Python/CodeUp

1471 ~ 1480 파이썬 코드업 문제풀이 2차원 배열

by GLOWWW 2021. 3. 2.

1471

n = int(input())
arr = [[0 for _ in range(n)]for _ in range(n)]
count = 0

for x in range(n):
    if x % 2:
        for y in range(n-1,-1,-1):
            count += 1
            arr[x][y] = count
    else:
        for y in range(n):
            count += 1
            arr[x][y] = count

for x in range(n-1,-1,-1):
    for y in range(n):
        print(arr[y][x], end=" ")
    print()

1472

import numpy as np
n, m = map(int, input().split())
arr = np.zeros((n, m), dtype=int)
count = 0

for x in range(n):
    for y in range(m):
        count += 1
        arr[x][y] = count

for x in range(n-1,-1,-1):
    if x % 2:
        for y in range(m):
            print(arr[x][y], end=" ")
    else:
        for y in range(m-1,-1,-1):
            print(arr[x][y], end=" ")
    print()

numpy를 임포트 해서 사용하여 풀이하면 위와 같다. 사용하지 않으면 아래와 같다.

n, m = map(int, input().split())
arr = [[0 for _ in range(m)]for _ in range(n)]
count = 0

for x in range(n):
    for y in range(m):
        count += 1
        arr[x][y] = count

for x in range(n-1,-1,-1):
    if x % 2:
        for y in range(m):
            print(arr[x][y], end=" ")
    else:
        for y in range(m-1,-1,-1):
            print(arr[x][y], end=" ")
    print()

둘다 정확한 풀이가 뜨며, 차이점은 아주 살짝의 코드길이와 6개의 시간차이 4배의 메모리차이이다.. numpy를 사용하지 않을때 더 작고 빠르다.

1473

n, m = map(int, input().split())
arr = [[0 for _ in range(m)]for _ in range(n)]
count = 0

for x in range(n):
    for y in range(m):
        count += 1
        arr[x][y] = count

for x in range(n-1,-1,-1):
    if x % 2:
        for y in range(m-1,-1,-1):
            print(arr[x][y], end=" ")
    else:
        for y in range(m):
            print(arr[x][y], end=" ")
    print()

1474

n, m = map(int,input().split())
arr = [[0 for _ in range(m)]for _ in range(n)]
count = 0

for x in range(m):
    if x % 2:
        for y in range(n):
            count += 1
            arr[y][x] = count
    else:
        for y in range(n-1,-1,-1):
            count += 1
            arr[y][x] = count

for x in range(n):
    for y in range(m-1,-1,-1):
        print(arr[x][y], end=" ")
    print()

1475

n, m = tuple(map(int, input().split()))
arr = [[0 for _ in range(n)]for _ in range(m)]
count = 0

for x in range(m):
    if x % 2:
        for y in range(n-1,-1,-1):
            count += 1
            arr[x][y] = count
    else:
        for y in range(n):
            count += 1
            arr[x][y] = count

for x in range(n):
    for y in range(m-1,-1,-1):
        print(arr[y][x], end=" ")
    print()

1476

n, m = tuple(map(int, input().split()))
arr = [[0 for _ in range(m)]for _ in range(n)]
count = 0

for x in range(n+m-1):
    for y in range(m):
        for z in range(n):
            if y+z == x:
                count += 1
                arr[z][y] = count

for x in range(n):
    for y in range(m):
        print(arr[x][y], end=" ")
    print()

1477

n, m = tuple(map(int, input().split()))
arr = [[0 for _ in range(m)]for _ in range(n)]
count = 0

for x in range(n+m-1):
    for y in range(n):
        for z in range(m):
            if y+z == x:
                count += 1
                arr[y][z] = count

for x in range(n):
    for y in range(m):
        print(arr[x][y], end=" ")
    print()

1478

n, m = tuple(map(int, input().split()))
arr = [[0 for _ in range(m)]for _ in range(n)]
count = 0

for z in range(n+m-1):
    for x in range(n):
        for y in range(m-1, -1, -1):
            if x+y == z:
                count += 1
                arr[x][y] = count

for x in range(n):
    for y in range(m-1, -1, -1):
        print(arr[x][y], end=" ")
    print()

1479

n, m = tuple(map(int, input().split()))
arr = [[0 for _ in range(n)] for _ in range(m)]
count = 0

for z in range(n + m - 1):
    for x in range(m):
        for y in range(n):
            if x + y == z:
                count += 1
                arr[x][y] = count

for x in range(n):
    for y in range(m-1, -1, -1):
        print(arr[y][x], end=" ")
    print()

1480

n, m = tuple(map(int, input().split()))
arr = [[0 for _ in range(n)]for _ in range(m)]
count = 0

for z in range(n+m-1):
    for x in range(m):
        for y in range(n-1, -1, -1):
            if x+y == z:
                count += 1
                arr[x][y] = count

for x in range(n-1, -1, -1):
    for y in range(m-1, -1, -1):
        print(arr[y][x], end=" ")
    print()

댓글