코딩테스트/JavaScript

[코딩테스트] 격자판 최대합

CODE_PLAN 2023. 12. 22. 18:56

나의 풀이

  function solution(arr) {
            let rowSum = 0;
            let columnSum = 0;
            let crossSum = 0;

            // for (let i = 0; i < arr.length; i++) {
            //     for (let j = 0; j < arr.length; j++) {
            //         if (arr[i][j]) {

            //         }
            //     }

            // }

            // return answer;
            for (let i = 0; i < arr.length; i++) {
                rowSum += arr[i][0];
                console.log('rowSum=?' + rowSum)
                // console.log(rowSum)
            }
            for (let i = 0; i < arr.length; i++) {
                columnSum = columnSum + arr[0][i];
            }
            for (let i = 0; i < arr.length; i++) {
                crossSum = arr[i][i];
            }
        }

        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(arr[0][0])
        // console.log(arr[1][0])

        // 행

        // 열

        // 대각선

        
        // 열

        console.log(columnSum)
        console.log(crossSum)
        // console.log('arr=' + arr.length);
        // 행

        // 대각선
        // arr[0][0] / arr[1][1] / arr[2][2]

        // console.log(solution(arr));
    </script>

모범 정답

<script>
            function solution(arr){  
                let answer=Number.MIN_SAFE_INTEGER;
                let n=arr.length;
                let sum1=sum2=0;
                for(let i=0; i<n; i++){
                    sum1=sum2=0;
                    for(let j=0; j<n; j++){
                        sum1+=arr[i][j];
                        sum2+=arr[j][i];
                    }
                    answer=Math.max(answer, sum1, sum2);
                }
                sum1=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));
</script>