본문 바로가기
프로그래머스

프로그래머스: 행렬의 덧셈 | Python

by sxlvxrjxms2s2itsmes2s2 2024. 1. 3.
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.


 

1. 처음에 한 것

def solution(arr1, arr2):
    answer=[]
    for i in arr1:
        sum=[]
        for j in arr2:
            sum.append(arr1[i][j]+arr2[i][j])
        answer.append(sum)
            
    return answer

 

문제점

- arr1이 이중리스트일 경우에는 for i in arr1으로 순회하면 각 i에는 리스트가 할당되기 때문에 안됩니다. 대신에 인덱스를 사용하여 각 행에 접근해야 합니다.

 

 

2. 정답

def solution(arr1, arr2):
    answer=[]
    for i in range(len(arr1)): # 각 행에 대한 인덱스로 순회
        sum=[]
        for j in range(len(arr1[0])): # 각 열에 대한 인덱스로 순회
            sum.append(arr1[i][j]+arr2[i][j])
        answer.append(sum)
            
    return answer

 

이 코드는 arr1arr2의 행과 열의 개수가 동일해야 올바르게 동작합니다.

 

3. 다른사람 풀이

def sumMatrix(A,B):
    for i in range(len(A)):
        for j in range(len(A[0])):
            A[i][j] += B[i][j]

    return A