[TIL] 241025 (기업지원 재시작 / 프로그래머스 배열 비교하기)

·2024년 10월 25일

TIL

목록 보기
199/268
post-thumbnail

오늘 한 일

  • 기업 지원 8건
  • 알고리즘 코드카타
    • 배열 비교하기

알고리즘 코드카타

배열 비교하기

문제

이 문제에서 두 정수 배열의 대소관계를 다음과 같이 정의합니다.

  • 두 배열의 길이가 다르다면, 배열의 길이가 긴 쪽이 더 큽니다.
  • 배열의 길이가 같다면 각 배열에 있는 모든 원소의 합을 비교하여 다르다면 더 큰 쪽이 크고, 같다면 같습니다.

두 정수 배열 arr1과 arr2가 주어질 때, 위에서 정의한 배열의 대소관계에 대하여 arr2가 크다면 -1, arr1이 크다면 1, 두 배열이 같다면 0을 return 하는 solution 함수를 작성해 주세요.

풀이

function solution(arr1, arr2) {
  if (arr1.length !== arr2.length) {
    return arr1.length > arr2.length ? 1 : -1;
  } else {
    const sum1 = arr1.reduce((a, c) => a + c);
    const sum2 = arr2.reduce((a, c) => a + c);
    if (sum1 !== sum2) {
      return sum1 > sum2 ? 1 : -1;
    } else {
      return 0;
    }
  }
}

우선 배열의 길이를 비교하여 다를 경우, 큰 쪽에 따라 값을 return한다.
배열의 길이가 같을 경우, reduce를 통해 각 배열의 합을 넣은 변수를 만든다.
이 두 수를 비교하여 값이 다를 경우 더 큰 숫자가 있는 쪽에 따라 값을 return한다.
두 수의 값마저 같을 경우 0을 return한다.

돌아보기

평일 내내 진행을 잘 못하다가 오늘 드디어 조금씩 다시 시작하고 있다. 주말까지 온전히 회복하고 다음 주부터 못 한 만큼 더 열심히 달려야할 것 같다.

profile
웹 프론트엔드 개발자

0개의 댓글