誰でもこのコードの何が間違っているかを知ることができますか?私はCodeWarsでコードを実行し、1つ以外のすべてのテストを渡します...悲しいことに、その特定のテストの入力が表示されないので、それを理解することは非常に難しいです。CodeWarsチャレンジどのテストが失敗の原因ですか?
は、ここでの挑戦命令です:
新しい「アベンジャーズ」映画がリリースされたばかり!映画館の興行場には、巨大なラインの中にたくさんの人がいます。それぞれ100ドル、50ドルまたは25ドルの請求書があります。 「アベンジャーズ」のチケットは25ドルかかります。
現在Vasyaは書記官として働いています。彼はこの行のすべての人にチケットを売りたがっています。
Vasyaは当初、お金がなく、人々がラインに従うように厳密にチケットを売っていれば、各人にチケットを販売し、変更を与えることができますか? Vasyaが各人にチケットを販売して変更を提供できる場合は、YESを返します。それ以外の場合はNOを返します。
amount50> = 1とamount25> = 1のチェックをスワップしてamount25> = 3とすると、このコードはすべてのテストで機能することが判明しました。
function tickets(peopleInLine){
let amount25 = 0;
let amount50 = 0;
let amount100 = 0;
for(let i = 0; i < peopleInLine.length; i++){
if(peopleInLine[i] === 100){
if(amount25 >= 3){
amount25 -= 3;
amount100++;
}else if(amount25 >= 1 && amount50 >= 1){
amount25 -= 1;
amount50 -= 1;
amount100++;
}else{
return "NO";
}
}
if(peopleInLine[i] === 50){
if(amount25 >= 1){
amount25--;
amount50++;
} else {
return "NO";
}
}
if(peopleInLine[i] === 25){
amount25++;
}
}
return "YES";
}