김찬양의 개발일지
42일차. 행렬의 덧셈 본문
링크
https://school.programmers.co.kr/learn/courses/30/lessons/12950
문제
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
정답
solution = lambda arr1, arr2: [[i+j for i, j in zip(arr1[idx], arr2[idx])] for idx in range(len(arr1))]
풀이과정
두 배열은 행렬이므로, 행과 열이 있다.
먼저 각 배열의 idx 번쨰 줄을 가져와보자
for idx in range(len(arr1))
idx 번쨰 배열의 각 항목을 더한 배열을 낸다.
[i+j for i, j in zip(arr1[idx], arr2[idx])]
리스트 컴프리헨션은 [ for idx in list ]의 형태로 for를 쓴 다음에 for 앞에 출력할 결과물을 작성하는것이다. 일일히 append해주는것보다 코스트가 싸다.
그렇게 된 배열을 모든 idx에 대해 처리해주고 그걸 하나의 큰 배열로 묶으면 된다.
[[i+j for i, j in zip(arr1[idx], arr2[idx])] for idx in range(len(arr1))]
'코딩테스트 > Programmers Level 1' 카테고리의 다른 글
44일차. 하샤드 수 (1) | 2024.01.11 |
---|---|
43일차. 핸드폰 번호 가리기 (1) | 2024.01.08 |
41일차. 이상한 문자 만들기 (0) | 2024.01.06 |
40일차. x만큼 간격이 있는 n개의 숫자 (0) | 2024.01.05 |
39일차. 직사각형 별찍기 (0) | 2024.01.05 |