inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

6. 격자판 최대합

와 이제 슬슬 어려워 지는것 같네요.

318

rhkdtjd_12

작성한 질문수 138

0

2차원 배열이라 이중 for문이 편해서 이중 for문으로 풀어 보았습니다.

function solution(array) {
let answer = [];
let sum1 = Array.from({ length: array.length }, (v, i) => 0);
let sum2 = Array.from({ length: array.length }, (v, i) => 0);
let sum3 = 0;
let sum4 = 0;

for (let i = 0; i < array.length; i++) {
   for (let j = 0; j < array[i].length; j++) {
       sum1[i] += array[i][j];
       sum2[i] += array[j][i];
    if (i === j) sum3 += array[i][j];
    if (i === array.length - 1 - j) sum4 += array[i][j];
     }
}

const maxSum1 = sum1.sort((a, b) => b - a);
const maxSum2 = sum2.sort((a, b) => b - a);
answer.push(maxSum1[0]);
answer.push(maxSum2[0]);
answer.push(sum3);
answer.push(sum4);
return answer.sort((a, b) => b - a)[0];
}

      console.log(
        solution([
          [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],
        ])
      );

코드 피드백 해주시면 정말 감사하고 아니여도 괜찮습니다!

javascript 코딩-테스트

답변 1

0

인프런 AI 인턴

안녕하세요 rhkdtjd_12 님, 인프런 AI 인턴이에요.

주어진 코드에서는 2차원 배열을 이중 for문을 사용하여 처리하고, 각 행과 열의 합, 대각선 합 등을 계산하고 그 중 최댓값을 반환하는 함수인 것 같습니다.
코드 자체는 문제가 없어보이고, 요구하는 기능을 잘 수행하고 있는 것 같습니다.

단, 조금 더 읽기 쉽고 가독성 있는 코드를 작성하고 싶으시다면 변수명을 좀 더 명확하게 지어주는 것이 좋습니다. 예를 들어, sum1, sum2와 같은 변수명은 그 역할을 파악하기 어려울 수 있습니다. 각각 행의 합을 나타내는 변수, 열의 합을 나타내는 변수 등으로 명시적으로 표현해주는 것이 좋을 것 같습니다.

또한, 변수의 선언과 초기화를 동시에 하는 방식인 let sum1 = Array.from({ length: array.length }, (v, i) => 0);은 가독성을 해치는 요소일 수 있습니다. 변수를 선언한 후에 따로 초기화하는 방식인 let sum1 = []; sum1.length = array.length; sum1.fill(0);와 같은 방식을 사용하여 초기화하는 것을 고려해볼 수 있습니다.

정리하자면, 현재 작성하신 코드는 기능적으로 문제가 없고 작동은 잘 되는 것 같지만, 가독성을 높일 수 있는 몇 가지 개선점이 있습니다. 그 외에는 큰 문제가 없어 보입니다. 수고하셨습니다!

0

rhkdtjd_12

개소리여 강사님이 Array.from 쓰라고 했는데

continue를 사용하는 이유

0

79

2

정렬 가능 여부 판단하기

0

64

2

알고리즘 학습법 관련해서 질문드립니다.

0

86

1

코드 리뷰 부탁드립니다!

0

90

1

indexOf를 사용해서 풀어보았습니다 !!

0

68

1

저는 이런식으로 구현 해보았습니다 !!

0

64

1

12,13,14 강의 소리만 나오고 검은 화면입니다

0

100

3

반복문 최소화하고 indexOf 사용해서 풀어봤습니다

0

63

1

영상 보기 전에 직접 풀어봤습니다.

0

74

1

섹션1의 17번문제 이 풀이로 풀어도 될까요?

0

136

2

정규표현식으로 처리해도 상관없나요 ?

0

120

2

3칸씩 건너뛸 수 있을 경우

0

125

2

강의에 대해 질문있습니다.

0

135

2

Object와 Set을 이용해 풀어봤습니다.

0

117

2

이렇게 해도 되나요?

0

102

2

선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.

0

145

2

이렇게 풀어도 괜찮을까요?

0

138

1

이렇게 풀어도 괜찮을까요?

0

112

1

모든 아나그램 찾기에서 시간복잡도

0

98

1

코드리뷰 부탁드립니다.

0

130

1

for loop 탈출은 return 문으로 해도 되지 않나요?

0

133

1

투포인트알고리즘으로 풀어봤습니다.

0

142

0

코드 리뷰 부탁드립니다.

0

120

1

코드 맞게 작성한 거 아닌가여??

0

146

1