코딩테스트

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

SigmoidFunction 2021. 12. 5. 00:47
728x90

문제링크 : https://programmers.co.kr/learn/courses/30/lessons/12950

 

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

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

programmers.co.kr

 

 

 

 

행렬의 덧셈

 

numpy를 쓰면 한방에 해결되긴 할텐데 직접해보고 싶었다.

 

케이스별로 행, 열의 갯수가 다르기 때문에 각각의 행과 열의 갯수를 세고 더해주는 과정이 필요해보였다.

 

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

이중 반복문이라서 마음에 들진 않지만 당장 생각나는게 이런것이라 ㅠㅠ

 

항상 나는 코테만 하면 가장 basic한 방법이 떠올라버린다 ㅠㅠ

 

행렬처럼 보여야하기에 answer를 빈리스트로 만들고

 

tmp를 매번 더해주었다.

 

0행 0열끼리 다 더해주고, 0행 1열끼리 다 더해주고....

 

1행 0열, 1행 1열 ....

 

이런식으로 진행될 수 있도록

 

다른사람의 풀이를 보니 zip 을 사용했다. zip도 요즘 참 많이 쓴 함수인데 왜 생각이 안났을까

 

ㅠㅠㅠㅠ

 

 

그사람도 이중반복문이라 뭔가 아쉽긴해도 내꺼보단 확실히 연산이 빠를 것같은 코드였다.

 

 

728x90