JS 복습 키워드 격자판

주재일·2021년 6월 19일
0

JS

목록 보기
7/33

격자판 코드

5x5 격자판에
<열의 합> <행의 합>
<오르쪽 시작 대각선의 합> <왼쪽시작대각선의 합>
중 가장 큰 값을 return 시킴

function solution(arr) {
  let answer = 0;
  let n = arr.length
  let sum1 = 0;
  let sum2 = 0;
  
  for(let i =0; i<n; i++){
    sum1=0
    sum2=0
    for(let j=0; j<n;j++){
      sum1+=arr[i][j]
      sum2+=arr[j][i]
      console.log(sum1, sum2)
    }
    answer = Math.max(answer, sum1, sum2)
  }
  sum1=0;
  sum2=0;
  for(let i = 0;i<n; i++){
    sum1+=arr[i][i]
    sum2+=arr[i][n-i-1]
  }
  answer = Math.max(answer, sum1, sum2)
  return answer;
}

let arr = [
  [10, 13, 10, 12, 15],
  [12, 39, 30, 23, 11],
  [11, 25, 50, 53, 15],
  [19, 27, 29, 37, 27],
  [19, 13, 30, 13, 19]
];
console.log(solution(arr));

키워드

  1. 열의 합과 행의 합을 [i][j]로 반복
    저렇게만 하게 되면 열과 행을 바뀔 때도 계속해서
    누적해서 끝까지 더 하게 됨,
    중간에 열과 행이 바뀔때마다 0으로 초기화를 시켜줘야
    한 줄 씩 더한 값이 나오게 된다.
    for문을 한번 실행 후 열과 행의 합의 변수를
    아래와 같이 0으로 초기화 시켜줘야한다.
    sum1=0, sum2=0
  1. 대각선으로 진행하기
    for문 하나로 arr[i][i]를 하면 1x1 2x2 순으로 대각선으로 진행하게 됨,
    오른쪽부터 왼쪽으로 가는 대각선은 n-i-1 로써 진행하게 됨
    그러면 맨 첫번째 오른쪽 행은 n-0-1 으로써 4
    그 다음 대각선은 n-1-1 으로써 5-1-1로 3 한 칸씩 내려가게 된다.

핵심코드

arr[i][i] arr[i][n-i-1]

1회 반복시 초기화 반복문이 끝난 후
sum = 0
profile
늦게 시작했으니 저는 늦둥이인가요?

0개의 댓글

관련 채용 정보