프라이D
프라이Develog(❁´◡`❁)
프라이D
전체 방문자
오늘
어제
  • ALL (378)
    • TDD, Cleancode with JavaScr.. (5)
    • 프로젝트 (32)
      • work (3)
      • 직접 만드는 기술 블로그 (2)
      • 데일리 옥션 (19)
      • 모락모락 (8)
    • Computer Science (1)
    • Algorithm & 자료구조 (94)
      • 알고리즘 w.JavaScript (53)
      • 자료구조 (5)
      • (인프런) 자바스크립트 알고리즘 문제풀이 (34)
    • JavaScript (45)
      • JavaScript (41)
      • 모던 자바스크립트 Deep Dive (4)
    • WEB (13)
    • 회고 (12)
    • TIL (109)
    • WIL (7)
    • Stacks (20)
      • React.js (6)
      • Next.js (1)
      • Redux (3)
      • Node.js (2)
      • GIT (2)
      • SAP (1)
    • 15일 메이킹 프로젝트 (15)
    • 이전 기록 (14)
    • ETC. (5)
    • ---------------2021 (6)
      • 내일배움단-웹개발 5주 (2)
      • 정보처리기사 (4)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 비트마스크
  • vanilaJS
  • 투포인터알고리즘
  • 국비지원
  • 알고리즘
  • 코딩프로젝트
  • Til
  • MySQL
  • nomadcoders
  • 내일배움카드
  • 자바스크립트
  • 내일배움단
  • 스파르타코딩클럽
  • JavaScript
  • 2023 인프콘 후기
  • nomadcoder
  • 모던자바스크립트딥다이브
  • 자바스크립트비트마스크
  • 자바스크립트알고리즘
  • 코드스테이츠

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
프라이D

프라이Develog(❁´◡`❁)

Algorithm & 자료구조/(인프런) 자바스크립트 알고리즘 문제풀이

[알고리즘]격자판 최대 합 구하기

2022. 1. 30. 00:00

문제

2차원 배열의 각 행의 합, 각 열의 합, 두 대각선의 합 중 가장 큰 합을 출력하세요!

풀이

function solution(arr) {
        let answer = Number.MIN_SAFE_INTEGER;
        //answer는 비교 후 최댓값으로 업데이트 하기 위해 최솟값 정수로 초기화.
        let leng = arr.length;
        let sum1 = sum2 = 0;
        //각 행의 합, 열의 합이 될 sum1,2도 0으로 초기화하여 선언

        for (let i = 0; i < leng; i++) {
          sum1 = sum2 = 0;
          //안쪽 for문이 돌기 전, 이전 기록 초기화.
          for (let j = 0; j < leng; j++) {
            sum1 += arr[i][j];
            //행이 i번째 일 때 그 행의 원소 j
            sum2 += arr[j][i];
            //열이 j번째 일 때 그 열의 원소 i
          }
          answer = Math.max(answer, sum1, sum2);
          //i번째 반복의 행의 합을 이전 answer 값과 함께 비교 후, 최댓값을 새로운 answer에 업데이트.
        }

        sum1 = sum2 = 0;
        //이전 기록 초기화

        //대각선 정방향의 합과 역방향의 합
        for (let i = 0; i < leng; i++) {
          sum1 += arr[i][i];
          //대각선 정방향일 때 원소의 위치는 행과 열이 같다.
          sum2 += arr[i][leng - i - 1];
          //대각선 역방향일 때, i번째 행의 원소의 열의 위치는 길이-현재 행-1(배열이 0부터 시작하기 때문)
        }
        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));

 

저작자표시 (새창열림)

'Algorithm & 자료구조 > (인프런) 자바스크립트 알고리즘 문제풀이' 카테고리의 다른 글

[알고리즘]숫자만 추출하기  (0) 2022.01.31
[알고리즘]2차원 배열의 사방 탐색  (0) 2022.01.31
[알고리즘] 배열 등수 구하기 (Array.from)  (0) 2022.01.29
[알고리즘]중복 단어 제거 - 배열의 중복 제거 (filter, indexOf)  (0) 2022.01.27
[알고리즘] 중복 문자 제거 - indexOf, Set  (0) 2022.01.27
    'Algorithm & 자료구조/(인프런) 자바스크립트 알고리즘 문제풀이' 카테고리의 다른 글
    • [알고리즘]숫자만 추출하기
    • [알고리즘]2차원 배열의 사방 탐색
    • [알고리즘] 배열 등수 구하기 (Array.from)
    • [알고리즘]중복 단어 제거 - 배열의 중복 제거 (filter, indexOf)
    프라이D
    프라이D
    틀린내용 정정 및 개선사항은 언제든지 댓글 달아주세요 :D

    티스토리툴바