본문 바로가기
코딩 테스트 연습

[알고리즘] 프로그래머스 - 행렬의 덧셈

by 코드뭉치 2023. 5. 4.

행렬의 덧셈

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 구해야 하는 것
    # 두 행렬의 같은 행, 같은 열의 값을 서로 더한 행렬
2. 1을 구하기 위해 필요한 것
    # 각각의 행과 열의 길이
        # len()
    # 각각 더하는 방법
        # for문

 

 

행의 개수만큼 빈리스트 추가, 0부터 row의 개수까지 각각의 값들을 더해서 위에 만든 리스트에 추가 

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

 

 

위 코드를 축약한 코드 

def solution(arr1, arr2):
    return [[arr1[i][j] + arr2[i][j] for j in range(len(arr1[0]))] for i in range(len(arr1))]

 

 

zip()을 사용해서 묶은 뒤 더해주는 코드

 

zip(arr1, arr2) 으로 두 배열을 n번째 행끼리 묶는다.(더해줘야 할 행 단위로 묶임)

(a, b) = (arr1의 n번째 , arr2의 n번째), 

(a, b) = (a의 n번째, b의 n번째)

def solution(arr1, arr2):
    return [[c + d for c, d in zip(a, b)] for a, b in zip(arr1, arr2)]

 

댓글