coding test - python/Programmers

Programmers / *행렬의 덧셈 / Python

sillon 2022. 4. 1. 16:03
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 행렬의 덧셈

문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12950


풀이

def solution(arr1, arr2):
    answer = [[] for x in range(len(arr2))]
    for i in range(len(arr1)):            # 세로 크기
        for j in range(len(arr1[i])):     # 가로 크기
            answer[i].append(arr1[i][j] + arr2[i][j])
    
    
    return answer

처음 풀 때 중첩 for문을 이용하여 구현했는데,

j에서 리스트 범위에 벗어난다고 오류가 떴었다.

answer에도 해당 배열의 길이만큼 2차원배열을 만들어주지 않아서도 오류가 났었다,, ㅠㅠ

그 두가지 오류를 수정한 코드가 위의 코드이다.

 

 

다른 풀이

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

두번째 시도에서 뭔가 zip함수로 구현할 수 있을 거같다고 생각했는데 코드가 쉽게 짜지진 않았음 

근데 위의 풀이처럼 구현하면 되는군.. 근데 아직 한줄 코딩은 너무 어려운거 같다 공부를 좀 해보자,,

 


https://dsbook.tistory.com/175를 참고하면 zip함수를 이용한 다른 풀이를 볼 수 있다.

 

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

프로그래머스 행렬의 덧셈 행렬의 덧셈 첫 번째 코드 코드가 python스럽지 않고(?) c++형태에 가까워서 아래 두 번째 코드로 바꿔보았다. 행렬의 덧셈 출력값 행렬의 덧셈 두 번째 코드(zip함수 활용

dsbook.tistory.com

 

728x90
반응형