데이터사이언스 기록기📚

[프로그래머스] Level 1_행렬의 덧셈 본문

Coding Test/프로그래머스(Python)

[프로그래머스] Level 1_행렬의 덧셈

syunze 2022. 5. 5. 23:33

유형

연습문제

 

문제

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

 

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

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

programmers.co.kr

 

나의 문제풀이

- 핵심은 이중리스트 초기화

 - 이중리스트에 한 줄씩 추가하기

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

 

다른 사람의 문제풀이

 1) 새로운 리스트 만들지 않고 기존 리스트 중 하나의 리스트에 값 더하기

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

 

 2) zip 이용한 코드

 

파이썬 zip( ) 함수_ 길이가 같은 리스트 등의 요소를 묶어주는 함수 (Python)

zip( ) - 순서 - 1. zip 함수 설명 2. 여러가지 사용 예시 1. zip 함수 설명 여러 개의 iterable자료형이 개수가 동일할 때 사용한다. iterable 자료형의 각각의 요소를 나눈 후 순서대로 묶어서 요소 개수만

ooyoung.tistory.com

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

 

3) numpy 이용

import numpy as np

def sumMatrix(A,B):
    A=np.array(A)
    B=np.array(B)
    answer=A+B
    return answer.tolist()
728x90
Comments