개발의 흔적
알고리즘 테스트# 4. 행렬의 덧셈 본문
안녕하세요.
프로그래머스에 있는 "행렬의 덧셈" 알고리즘 문제를 풀어보겠습니다.
문제 : 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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
더 좋은 코드가 있는경우 공유 바랍니다~