알고리즘 기초 주차 - 1번 문제 풀이 방법
본문 바로가기
항해 중/2주차 알고리즘(프로그래머스)

알고리즘 기초 주차 - 1번 문제 풀이 방법

by 은돌1113 2021. 11. 13.
문제설명
행렬이 두개 있습니다. 두 행렬의 절댓값을 차례대로 담은 정수 배열 absolutes와 행렬의 부호를 차례대로 담은 boolean 배열 sings가 매개변수로 주어집니다. 두 행렬의 부호는 같습니다.
실제 행렬 덧셈의 결과를 반환하는 함수, solution을 완성 해주세요.
 
제한사항
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
 
입출력 예


지정 입력값

문제 풀이

function solution(arr1, arr2, signs){

  let line = [] // 행을 담을 배열

  for(let i = 0; i < arr1.length; i++){ // 행 반복문
    let heat = [] // 열을 담을 배열
    for(let j = 0; j < arr1[i].length; j++){ // 열 반복문
      if(signs[i][j] == true){ // 양수
        heat.push(arr1[i][j] + arr2[i][j])
      }else{ // 음수
        heat.push((arr1[i][j] + arr2[i][j]) * -1)
      }
    }
    line.push(heat)
  }

  return line
}

console.log(solution([[1,2],[2,3]], [[3,4],[5,6]], [[true, true], [true, false]]))

1) 행을 담을 배열과 열을 담을 배열을 생성한다.
2) 첫번째 반복문을 돌려서 행의 값을 뽑는다.
3) 두번째 반복문을 돌려서 열의 값을 뽑는다.
4) if문을 사용해서 sign의 값이 true인 지 false인 지 뽑는다.
5) 서로 다른 두 배열에서 같은 인덱스의 값을 더해서 열 배열에 push 한다.
(이때 열 배열은 행 반복문 안에 넣어줘야 한다.)
6) 열 반복문이 끝나면 행 반복문에 열 배열을 push 한다.

댓글