[JS]_daily coding #15

seul·2022년 6월 13일
0

Algorithm

목록 보기
14/31

코플릿 데일리 코딩 14_superIncreasing


수도코드

  1. 수를 요소로 갖는 배열을 입력받아서 arr[i] > arr[0] + arr[1] + ... + arr[i-1] 를 판별해 boolean 타입을 리턴한다.
  2. 합계를 넣을 변수 sum을 선언한다. sum에는 arr[0]를 넣어준다.
  3. 반복문을 순회하면서 if문을 통해서 sum과 arr[i]값을 비교한다.
  4. arr[i] sum보다 작을 경우에는 바로 false를 리턴한다.
  5. i값을 증가시켜 넘어가기 전에 sum에 arr[i]를 더해준다.
  6. arr의 마지막 요소를 순회할때까지 해당 조건(arr[i] < sum)을 만족하지 못하면 반복문을 빠져나와서 true를 리턴한다.

첫번째 코드

function superIncreasing(arr) {
  let sum = arr[0];
  for (let i = 1; i < arr.length ; i++) {
    if (arr[i] < sum) {
      return false
    } 
    sum += arr[i]
  }  
  return true
}

이렇게 작성했더니 [1, 2, 4, 8, 15]를 입력받은 경우를 통과하지 못했다. 그래서 작거나 같은<=으로 조건을 수정했다.

두번째 코드

function superIncreasing(arr) {
  let sum = arr[0];
  for (let i = 1; i < arr.length ; i++) {
    if (arr[i] <= sum) {
      return false
    } 
    sum += arr[i]
  }  
  return true
profile
Connecting dots

0개의 댓글