새소식

⌨️ Algorithms/프로그래머스

[Python] 프로그래머스 Lv1_행렬의 덧셈

2023. 1. 10. 23:16

  • -

https://school.programmers.co.kr/learn/courses/30/lessons/12950

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

  • 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과
  • 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환

제한 조건

  • 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않음

 

"""
입출력 예시)

arr1 = [[1,2],[2,3]], arr2 = [[3,4],[5,6]] -> [[4,6],[7,9]]
arr1 = [[1],[2]], arr2 = [[3],[4]] -> [[4],[6]]
"""

 

 

## 의사코드 ##

# arr의 리스트 원소
# for i in range(len(arr1)):
# arr의 리스트 원소 내의 원소
#   for j in range(len(arr1[i])):
#       answer[i][j] = arr1[i][j] + arr2[i][j]

 

 

 

통과한 코드

 

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

-> arr1에 arr2를 더해서 arr1 자체를 변경

 

 

 

다른 풀이

 

def sumMatrix(A,B):
    answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)]
    return answer

-> zip() 활용

 

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

-> 주어진 arr 자체를 바꾸지 않고 answer이라는 새로운 리스트에 값 추가

 

 

 

cf) 이전에 작성했던 코드

 

https://monzheld.tistory.com/54

 

[Python] 프로그래머스 Lv1_행렬의 덧셈

https://school.programmers.co.kr/learn/courses/30/lessons/12950 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는

monzheld.tistory.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!