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()