알고리즘: superIncreasing

Kyoorim LEE·2022년 6월 14일
0

알고리즘TIL

목록 보기
4/40

문제

수를 요소로 갖는 배열을 입력받아 각 요소들이 그 이전의 요소들의 합보다 큰지 여부를 리턴해야 합니다.

입력

인자 1 : arr

  • 수를 요소로 갖는 배열
  • arr[i]는 정수

출력

  • boolean 타입을 리턴해야 합니다.
  • arr[i]arr[0]부터 arr[i-1]까지의 합보다 커야 합니다.

주의 사항

각 문자열의 길이는 다양합니다.
각 문자의 위치를 행, 열로 나타낼 경우, 비어있는 (행, 열)은 무시합니다.

입출력 예시

let output = superIncreasing([1, 3, 6, 13, 54]);
console.log(output); // --> true

output = superIncreasing([1, 3, 5, 9]);
console.log(output); // --> false

풀이

접근 방법

  1. sum 선언 // let sum = arr[0];
  2. for을 돌려서 차례대로 더한 후 그 다음 인덱스 값과 대소비교
  3. if문을 통해 false인 경우만 먼저 빼주고
  4. 나머지는 다 true로 처리
function superIncreasing(arr) {
  // TODO: 여기에 코드를 작성합니다.
    let sum = arr[0];
  for(let i = 1; i < arr.length; i++) {
    if(sum + arr[i] >= arr[i+1]) {
      return false;
    }
    sum = sum + arr[i];
  }
  return true;
}

한 줄평

중요한 포인트

  • if문으로 먼저 false 의 경우를 빼주는 것이 포인트였다.
  • else를 쓰지 않고 if 문에서 빠져나온 후 for문을 이용해 sum의 값을 구하고
  • return true를 한다
profile
oneThing

0개의 댓글