반응형
행렬의 덧셈
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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]] |
코드
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
if(arr1.length != arr2.length && arr1.length >= 500 ) return arr1;
int[][] answer = new int[arr1.length][arr1[0].length];
for(int i=0; i<arr1.length; i++){
for(int j=0; j<arr1[i].length; j++){
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
return answer;
}
}
해설
2차원 행렬의 덧셈 문제이다.
처음에 answer의 값을 초기화시켜주는 과정에서 둘 다 길이를 arr1.length로 초기화를 하는 바람에 테스트 2 출력에서 애를 좀 먹었다.
그 부분 말고는 크게 어려운 점은 없었지만 다른 사람의 코드를 참고했을 때 와 이런 방법이 있구나 하고 아차! 하는 코드가 있었다.
배열 answer에 arr1를 대입하고, for문을 돌려서 answer에 arr2를 더하는 방법이다!
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
반응형
'코딩 테스트 > Java' 카테고리의 다른 글
[프로그래머스]Level 1 : 짝수와 홀(JAVA) (0) | 2021.05.17 |
---|---|
[프로그래머스]Level 1 : x만큼 간격이 있는 n개의 숫자(JAVA) (0) | 2021.05.17 |
[프로그래머스]Level 1 : 콜라츠 추측(JAVA) (0) | 2021.05.16 |
[프로그래머스]Level 1 : 직사각형 별찍기(JAVA) (0) | 2021.05.16 |
[프로그래머스]Level 1 : 가운데 글자 가져오기(JAVA) (0) | 2021.05.16 |