https://www.acmicpc.net/problem/2738
문제 자체는 어려운 게 아닌데, 파이썬에서 2차원 배열 사용하는 게 처음이다보니 생각할 것과 배울 것들이 많았다.
N, M = map(int, input().split())
A = list()
B = list()
AB = [[0 for j in range(M)] for i in range(N)]
for i in range(N) :
A.append(list(map(int, input().split())))
for i in range(N):
B.append(list(map(int, input().split())))
for j in range(M) :
AB[i][j] = A[i][j] + B[i][j]
for a, b, c in AB :
print(a, b, c)
for a, b, c in AB :
print(a, b, c)
2차원 배열 A와 B를 더하는 또다른 list를 만들지 않고 그냥 더해서 출력하면 된다.
N, M = map(int, input().split())
A = list()
B = list()
for i in range(N) :
A.append(list(map(int, input().split())))
for i in range(N):
B.append(list(map(int, input().split())))
for i in range(N):
for j in range(M):
print(A[i][j] + B[i][j], end=' ')
print()
rows = 10
arr = [0] * rows
*
연산자를 이용해 배열을 선언하게 되면, 얕은 복사(shallow copy)가 진행된다.rows = 10
cols = 5
arr = [[0 for j in range(cols)] for i in range(rows)]
list = []
for i in range(6):
list[i] = i
list.append(1)을 하면, 리스트 첫번째에 '1'이 입력된다.
list.insert(0, 1)을 하면, 리스트 첫번째에 '1'이 입력된다.
list = []
list = [0] * 10
# list = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
# 0이 10개 들어가 있는 리스트화
n, m = map(int, input().split())
#1
li = [0 for _ in range(n)]
for i in range(n):
li[i] = list(map(int, input().split()))
#2
li = []
for i in range(n) :
li.append(list(map(int, input().split())))
#3
li = [list(map(int, input().split())) for _ in range(n)]
a = [[10, 20], [30, 40], [50, 60]]
for x, y in a: # 리스트의 가로 한 줄(안쪽 리스트)에서 요소 두 개를 꺼냄
print(x, y)
a = [[10, 20], [30, 40], [50, 60]]
for i in a: # a에서 안쪽 리스트를 꺼냄
for j in i: # 안쪽 리스트에서 요소를 하나씩 꺼냄
print(j, end=' ')
print()
a = [[10, 20], [30, 40], [50, 60]]
for i in range(len(a)): # 세로 크기
for j in range(len(a[i])): # 가로 크기
print(a[i][j], end=' ')
print()