Wacky_Life

 

코딩테스트 연습 - 행렬의 덧셈

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

programmers.co.kr

 

 

 

문제 설명

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

 

 

 

제한 조건

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

 

 

입출력 예

arr1 arr2 return
[[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]]
[[1],[2]] [[3],[4]] [[4],[6]]

 

 

 

코드

1
2
3
4
5
6
7
import numpy as np
 
def solution(a,b):
    A = np.array(a)
    B = np.array(b)
    answer = A+B
    return answer.tolist()
cs

 

numpy를 활용해서 입력받은 a와 b를 array로 변환시키고 answer에 이를 더한 값을 저장한다. answer에 tolist 함수를 활용해서 np.array 형식을 list형식으로 변환하여 return 한다.

 

1
2
3
def solution(arr1, arr2):
    answer = [[c+for c,d in zip(a,b)] for a, b in zip(arr1, arr2)]
    return answer
cs

 

zip을 이용해 입력 받은 arr1과 arr2를 묶고 이를 for문을 통해 a, b로 할당한다. 그리고 a, b를 for문을 활용해 c, d로 할당하고 이를 더한 다음에 [] 를 활용해 list로 만들고 이를 return 한다.

만약에, answer = [c+d for c, d in zip(arr1, arr2)]를 하면 결과는 [[1,3], [2,4]] 라고 나온다.

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading