[프로그래머스] Level1-행렬의 덧셈

JIEUN YANG·2022년 10월 25일
0

이중배열 구조로 된 데이터의 인덱스 value값들끼리 더한 뒤, 그 결과값을 이중배열 구조의 인덱스 순서에 맞게 출력되도록 해야 한다. for loop를 사용하여 배열의 index 및 value에 접근하거나, map() 함수로 데이터 구조를 바꿔 정답을 얻을 수 있다.



for loop 활용

function solution(arr1, arr2) {
    var answer = [[]];
    
    for(let i = 0; i <arr1.length; i++){
        answer[i] = []
        for(let j = 0; j<arr1[0].length; j++){
            answer[i].push(arr1[i][j] + arr2[i][j])
        }
    }
    return answer;
}
  • arr1 = [[1,2], [2,3]], arr2 = [[3,4], [4,5]] 의 이중배열 형태를 지니기 때문에, 이중for문을 사용하였다.
  • 첫번재 for문은 arr1 혹은 arr2 배열의 크기만큼 인덱스를 모두 탐색하고, 두번째 for문은 arr1[0] 혹은 arr2[0] 배열의 크기만큼 탐색하도록 한다. (두 행렬은 행과 열의 크기가 모두 같기 때문에 가능)
  • answer[i] = [], 데이터 초기화를 통해 answer[i]번째 value값이 배열 형태로 세팅되도록 명시해준다.
  • answer 배열 안 배열의 value값은, arr1[i][j] + arr2[i][j] 식을 통해 구하고, 그 값을 answer[i]번째에 push하여 답안 또한 이중배열의 형태가 되도록 한다.



간단한 로직이었지만, answer[i]번째에 각 value값들을 더한 값을 매핑해주는 접근법을 찾아내는데 시간이 오래 걸렸다..
스스로 해결하지 못해 타인의 소스를 참고했음에도 처음부터 다시 풀어보려니 또 다시 같은 곳에서 막혔다. 복잡한 데이터 구조를 가공하는 데에 시간을 좀 더 투자해야겠다..!

profile
violet's development note

0개의 댓글

관련 채용 정보