개발의 흔적

알고리즘 테스트# 4. 행렬의 덧셈 본문

카테고리 없음

알고리즘 테스트# 4. 행렬의 덧셈

남들에게 도움을 주는 백엔드 개발자가 되자 2020. 7. 15. 16:53

안녕하세요.

 

프로그래머스에 있는 "행렬의 덧셈" 알고리즘 문제를 풀어보겠습니다.

 

문제 : 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받습니다.

 

출력 결과 : 

 

[[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]]
[[1],[2]] [[3],[4]] [[4],[6]]

코드 :

 

 

 

* 문제 해설 *

 

행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 입력받습니다.

그후 2차원배열의 반복문을 통해서 두개의 행,열을 더합니다.

 

 

* 코드 해설 *

 

2차원 배열 :

int[][] arr1 = {{1,2},{2,3}};
int[][] arr2 = {{3,4},{5,6}};

 

행과 열의 크기가 같은 두 행렬은 현재 테스트 코드와 맞게 2행,2열로 선언되어있습니다.

그후 2차원배열에 담을 answer의 값을 구합니다.

 

현재 반환값이 2차원 배열이기에 2차원 배열을 생성또는 초기화를 해야합니다.

int[][] answer = arr1;

arr1의 값을 준 이유는 행과열의 길이가 arr1 == arr2 같기 때문입니다.

그후 바깥쪽 for문에서 한번 실행될때 안쪽 for문은 

answer[0][0] = arr1[0][0] + arr2[0][0]으로 인해 덧셈이 시작됩니다.

 

1. arr1[0][0] = 1 , arr2[0][0] = 3 총합 : 4

2. arr1[0][1] = 2 , arr2[0][1] = 4 총합 : 6

3. arr1[1][0] = 2 , arr2[1][0] = 5 총합 : 7

4. arr1[1][1] = 3 , arr2[1][1] = 6 총합 : 9

이런식으로 배열이 반복되서 결과값이 나옵니다.

 

출력 : 4,6,7,9

 

 

 

 

 

더 좋은 코드가 있는경우 공유 바랍니다~ 

Comments