Python/[코드트리]

[코드트리] 새로운 2차원 배열의 선언 > 숫자 직사각형

hyunnn_00 2023. 7. 14. 11:21
정수 n과 m의 값을 입력받아 숫자로 이루어진 직사각형을 출력하는 프로그램을 아래 예를 참고하여 작성해보세요. 단, 2차원 배열을 꼭 사용하여 해결해보세요.

 

예)

n에 3을 m에 5를 입력받는 경우

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

 

# 풀이 1
n, m = list(map(int, input().split())) # 행의 개수 n, 열의 개수 m 입력 받기
# n, m = tuple(map(int, input().split())) 이렇게 해도 됨

# 2차원 배열 구현
arr_2d = [
    [0 for _ in range(m)]
    for _ in range(n)
]

# n * m 크기의 배열에 숫자를 채워 넣기
num = 1
for i in range(n): # n행
    for j in range(m): # m열
        arr_2d[i][j] = num # 각 자리에 num 채워넣기
        num += 1 # num은 1씩 증가

# 출력
for row in arr_2d:
    for elem in row:
        print(elem, end = " ")
    print()
# 풀이 2
# n과 m 입력 받기
n, m = tuple(map(int, input().split()))

for i in range(n): # n개의 행 생성
    for j in range(m): # m개의 열 생성
        print(i * m + j + 1, end=" ") # 각 행당 열 개수(m)를 곰한 후 현재 열(j)의 값과 1을 더함
    print()
    
# 리스트 컴프리헨션 사용하여 코드 줄이기
rectangle = [[i * m + j + 1 for j in range(m)] for i in range(n)]

for row in rectangle:
	print(*row) # row 리스트의 요소들을 개별적으로 출력해주는 역할을 함
# 풀이 3
# n과 m 입력받기
n , m = tuple(map(int , input().split()))

# 2차원 배열 생성
a = [ [ 0 for _ in range(m) ] for _ in range(n) ]

# 값 하나씩 할당
result = 0
for i in range(n):
    for j in range(m):
        result += 1
        a[i][j] = result
        print(a[i][j], end = ' ')
    print()