프로그래머스 행렬의 덧셈 - 파이썬 : https://school.programmers.co.kr/learn/courses/30/lessons/12950
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예
arr1 | arr2 | return |
---|---|---|
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4],[6] |
python에는 행렬을 결합 할 수 있는 zip이라는 함수가 있습니다.
이것을 활용해서 문제를 풀어보도록 하겠습니다.
zip에 관한 자세한 설명은 아래의 포스트에 정리되어 있으니 참고 바랍니다.
https://labfor310.tistory.com/17
Python~zip()함수 사용법
zip()함수란 두개의 배열을 결합해 zip object로 반환하는 함수입니다. zip(배열1, 배열2, strict = True/False) strict는 생략이 가능합니다. 디폴트 값으로 false가 설정되어 있으며, 합치는 두 배열의 길이가
labfor310.tistory.com
def solution(arr1, arr2):
answer = [[a+b for a, b in zip(*x)]for x in zip(arr1, arr2)]
return answer
부분 부분 분석해봅시다.
for x in zip(arr1, arr2)
처리에서
arr1의 첫번째 인덱스의 값과 arr2의 첫번째 인덱스의 값이 결합 [[1, 2], [3, 4]]
arr1의 두번째 인덱스의 값과 arr2의 두번째 인덱스의 값이 결합 [[2, 3], [5, 6]]
x의 값으로 반환됩니다.
이 x의 값은 for a, b in zip(*x)
에서 각각 unzip됩니다.[[1, 2], [3, 4]]
-> a=1 b=3
a=2 b=4
[[2, 3], [5, 6]]
-> a=2 b=5
a=3 b=6
최종적으로 a+b의 합을 반환, 목표 결과값을 도출합니다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스~옹알이 2(Java) (0) | 2023.07.30 |
---|---|
프로그래머스~숫자 짝꿍(Java) (1) | 2023.06.06 |
프로그래머스~삼총사(Python) (0) | 2023.06.06 |