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

CHAEN·2022년 3월 11일
0

problem solving

목록 보기
5/33
post-thumbnail

문제

접근 방법

  • 입력된 두 행렬에서 행을 하나씩 꺼냄
  • 꺼내온 행에서 순서대로 같은 열에 있는 값을 더함
  • 임시 리스트에 연산 결과를 저장
  • 정답 리스트에 임시 리스트를 추가

이전에 C++로 풀었던 내용

#include <string>
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
    vector<vector<int>> answer;
    vector<int> innerA;
    
    for(int i = 0; i < arr1.size(); i++){
        for(int j = 0; j < arr1[i].size(); j++){
            innerA.push_back(arr1[i][j] + arr2[i][j]);
        }
        answer.push_back(innerA);
        innerA.clear();
    }
    return answer;
}

나의 풀이

def solution(arr1, arr2):
    answer = []
    
    for ar1, ar2 in zip(arr1, arr2):
        temp = [a1 + a2 for a1, a2 in zip(ar1, ar2)]
        answer.append(temp)
    
    return answer

zip 너무 좋다!!!

다른 사람의 풀이

import numpy as np

def solution(arr1, arr2):
    arr1 = np.array(arr1)
    arr2 = np.array(arr2)
    
    answer = arr1 + arr2 
    
    return answer.tolist()

뭐지.. 이런 사람들은 천재인가?
넘파이 백날 배워도 문제 풀 때 써먹을 생각을 못했다.
나중에는 나도 생각할 수 있겠지?!

profile
공부중입니다

0개의 댓글

관련 채용 정보