• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

격자판 최대합: 18번째 줄에 최대값 비교할때 answer은 왜 포함하는건가요?

23.01.07 16:15 작성 23.01.07 17:28 수정 조회수 217

0

 Math.max(sum1, sum2);

대각선 구할 때는 이미 앤서에 행렬의 합 중 최대값이 들어가있어서 앤서를 포함하여 max값을 찾는 것 같은데,

18번째 줄에 최초 max를 구할 때는 왜 앤서를 포함해서 최대값을 구하는건지 궁금합니다.

그리고 앤서의 초기값을

 

let answer=0

 

으로 줘도 상관없나요?

답변 1

답변을 작성해보세요.

0

안녕하세요^^

answer=Math.max(answer, sum1, sum2);

i행의 합인 sum1, i열의 합인 sum2, 그리고 기존 값 answer 셋 중에서 가장 큰 값을 answer에 저장하는 것입니다. answer값이

i = 0일때 0행의 합(sum1)과 0열의 합(sum2), 아주 작은 값으로 초기화된 answer 이 셋 중 가장 큰 값을 answer에 저장합니다.

i = 1일때는 1행의 합(sum1)과 1열의 합(sum2) 와 기존 answer(0행의 합, 0열의 합 중 큰값) 이 셋 중 가장 큰 값으로 answer 값이 저장됩니다.

i = 2일때는 어떻게 되는 건지 한 번 생각해보세요

격자판의 값들이 자연수이니 answer = 0으로 초기화해도 상관없습니다.