Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 변경이 가능한지 확인

<시간/>

문제

첫 번째이자 유일한 인수로 숫자 배열, arr를 취하는 JavaScript 함수를 작성해야 합니다.

다음 상황을 고려해 보겠습니다.

한 가게 주인이 정확히 5루피에 해당하는 단일 상품을 판매합니다. 일부 고객은 대기열에 서서 이 상품을 정확히 한 단위만 구매합니다. 고객은 가게 주인에게 5,000원, 10,000원의 지폐를 제공할 수 있습니다. 가게 주인이 처음에 돈이 없고 배열이 대기열에 서 있는 고객이 제공한 메모를 나타내는 것을 고려하면.

우리의 기능은 가게 주인이 모든 고객에게 정확한 변경 사항을 제공할 수 있는지 여부를 결정해야 합니다.

예를 들어, 함수에 대한 입력이

인 경우

입력

const arr = [5, 5, 10, 10, 20];

출력

const output = false;

출력 설명

2개의 5개 음표가 2개의 10개 음표에 대한 변경 사항을 제공하는 데 사용되며 그 이후에는 20개 음표에 대한 변경 사항을 생성할 수 없기 때문입니다.

다음은 코드입니다:

예시

const arr = [5, 5, 10, 10, 20];
const provideChanges = (arr = []) => {
   let fives = 0
   let tens = 0
   for(let i = 0; i < arr.length; i++) {
      switch(arr[i]) {
         case 5:
            fives += 1
            break
         case 10:
            if(fives <= 0) {
               return false
            }
            fives -= 1
            tens += 1
            break
         default:
            if(tens >= 1 && fives >= 1) {
            tens -= 1
            fives -= 1
         } else if(fives >= 3) {
            fives -= 3
         } else {
            return false
         }
         break
      }
   }
   return true
};
console.log(provideChanges(arr));

출력

false