[연습문제] 행렬의 덧셈
2024. 12. 1. 18:00ㆍ입문문제
https://school.programmers.co.kr/learn/courses/30/lessons/12950?language=python3
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
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]] |
행과 열의 길이가 동일한 두 배열이 주어졌을 때, 이 배열끼리의 합이 담긴 새로운 배열을 반환하는 문제입니다.
간단하게 각각의 배열에 어떻게 접근할 건지만 선택하면 되는 문제입니다.
저는 자바와 파이썬 모두 반복문을 사용해서 문제를 해결하겠습니다.
다만 파이썬은 리스트 컴프리헨션을 사용할 수 있으니, 이 방법으로 풀어보도록 하죠.
정답 코드를 작성해보겠습니다.
1. 자바
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
// 배열의 행, 열의 길이를 구합니다.
int rows = arr1.length;
int cols = arr1[0].length;
// 새로운 배열을 선언합니다.
int[][] answer = new int[rows][cols];
// 반복문을 통해 두 배열의 합을 answer에 저장합니다.
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
// answer을 반환합니다.
return answer;
}
}
2. 파이썬
def solution(arr1, arr2):
# arr1의 행 길이만큼 반복합니다.
# arr1[0], 열 길이만큼 반복합니다.
# 두 배열의 합을 새롭게 answer에 저장합니다.
answer = [[arr1[i][j] + arr2[i][j] for j in range(len(arr1[0]))] for i in range(len(arr1))]
return answer
두 풀이 방법 모두 동일한 방식을 사용합니다.
파이썬이 좀 더 짧기는 하지만, 알아보기 힘들기 때문에 저는 풀어쓰는 걸 추천드립니다.
'입문문제' 카테고리의 다른 글
| [연습문제] 직사각형 별찍기 (1) | 2024.12.04 |
|---|---|
| [연습문제] x만큼 간격이 있는 n개의 숫자 (1) | 2024.12.03 |
| [연습문제] 핸드폰 번호 가리기 (0) | 2024.11.30 |
| [연습문제] 하샤드 수 (1) | 2024.11.29 |
| [연습문제] 평균 구하기 (0) | 2024.11.27 |