[Programmers] 이차원 배열 대각선 순회하기 (JavaScript)

Jinny·2025년 1월 10일
0
  • 날짜 / 주차-누적 횟수: 2025.01.08(수) / 2주차-11회
  • 사이트 이름: 프로그래머스
  • 사용 언어: 자바스크립트
  • 문제 고유 번호 및 레벨: 181829 / Lev 0
  • 나의 풀이 방법:
    function solution(board, k) {
        // board: 2차원 정수 배열
        // k: 정수 
        
        // i + j <= k를 만족하는 (i, j)에 대한 board[i][j]의 합을 return 하는 solution함수를 완성
        
        let result = 0;
        
        for (let i = 0; i < board.length; i++) {
            for (let j = 0; j < board[0].length; j++) {
                if (i + j <= k) result += board[i][j]; 
            }
        }
        
        return result;
    }
    • 일반 for 문을 중첩하여 사용해서 2차 배열에 접근한다.
  • 최적 풀이 방법:
    function solution(board, k) {
      return board.reduce(
        (total, row, i) => total + row.reduce((prev, num, j) => (i + j <= k ? prev + num : prev), 0),
        0,
      );
    }
    
    • reduce() 메서드를 사용하여 2차원 배열 전체를 순회한다.
      • total: callback함수의 반환값을 누적한다.
      • row: 배열의 현재 요소
      • i: 배열의 현재 요소 인덱스
  • 배운 개념:
    • 2차원 배열을 순회할 때 reduce 중첩해서 사용하면 효과적으로 풀 수 있다.
      • reduce: 4가지의 인수를 가진다.
        • accumulator: callback함수의 반환값 누적
        • currentValue: 배열의 현재 요소
        • index(Optional): 배열의 현재 요소의 인덱스
        • array(Optional): 호출한 배열
profile
세상을 이롭게 하는 프론트엔드 개발자 Jinny

0개의 댓글

관련 채용 정보