행렬 덧셈
import sys
def main():
input = sys.stdin.readline
rows, cols = map(int, input().split())
mat_a = [list(map(int, input().split())) for _ in range(rows)]
mat_b = [list(map(int, input().split())) for _ in range(rows)]
mat_c = [[a + b for a, b in zip(row_a, row_b)] for row_a, row_b in zip(mat_a, mat_b)]
for row in mat_c:
print(*row)
main()
2차원 배열
Python에서는 list 안에 list를 넣어서 2차원 배열을 표현할 수 있습니다.
흔히 행 방향(위쪽에서 아래쪽으로)을 y축, 열 방향(왼쪽에서 오른쪽으로)을 x축으로 삼고, 각 원소의 위치를 (y, x) 순서쌍으로 표현합니다.
이 관습을 따르면, 아래 코드에서 arr
은 2행 3열, brr
은 3행 2열인 2차원 배열을 나타냅니다.
arr = [[1, 2, 3], [4, 5, 6]]
brr = [
[1, 2],
[3, 4],
[5, 6],
]
인덱싱은 순서쌍에 정의된 순서대로 하나씩 인덱스를 적용하면 됩니다. 위의 코드에 이어서, 다음과 같이 사용할 수 있습니다.
print(arr[1][0]) # 4
print(brr[-1][-1]) # 6
많지는 않지만, 일부 문제는 방향을 반대로 정의하는 경우가 있으므로 주의해야 합니다.
댓글