happy coding

[level 1] 행렬의 덧셈 본문

coding study/programmars

[level 1] 행렬의 덧셈

yeoonii 2024. 6. 27. 22:52

문제 설명

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

제한 조건
  • 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.

내 풀이

def solution(arr1, arr2):
    ans = [[0] * len(arr1[0]) for _ in range(len(arr1))]
    
    for i in range(len(arr1)):
        for j in range(len(arr1[0])):
            ans[i][j] = (arr1[i][j] + arr2[i][j])
        
    return ans

 

위 처럼 했더니 9 10 14에서 실패가 떴다. 아래는 다시 수정한 답

def solution(arr1, arr2):
    ans = [[0] * len(arr1[0]) for _ in range(len(arr1))]

    for i in range(len(arr1)):
        for j in range(len(arr1[0])):
            ans[i][j] = arr1[i][j] + arr2[i][j]
        
    return ans

 

다른 풀이

def sumMatrix(A,B):
    answer = [[c + d for c, d in zip(a,b)] for a, b in zip(A,B)]
    return answer
def sumMatrix(A,B):
    return [list(map(sum, zip(*x))) for x in zip(A, B)]
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
Comments