[アルゴリズム]2 Dナビゲーション-可視学生



目に見える学生


先生はN(1<=N<=1000)人の学生を一列に並べた.一列に並んだ学生が前から順番に身長をあげるときは、一番前に立っている先生が見える学生の数を求めるプログラムを作ってください.△前に立っている人より大きいと見えますが、小さいと見えません.
■説明の入力
1行目に整数Nを入力します.次の行では、N人の生徒の身長が前から順に与えられる.
■出力説明
先生が見える最大の学生数を印刷します.
■入力例1
8
130 135 148 140 145 150 150 153
■出力例1
5

説明する

function solution(arr) {
  let answer = [];
  let max = 0;
  arr.reduce((acc, cur) => {
    max < acc ? (max = acc) : null;
    cur > max ? answer.push(cur) : null;
    return cur;
  }, 0);
  return answer.length;
}
大きなデジタル出力の問題との結果はあまり差がありません.違うのは、前に背の高い友達がいて、後ろの友達がこの友達より背が低いと、前の友達が私より背が低くても見えません.そこでmaxを別の位置に置きます.reduce関数を使用して、コールバック関数の最初の行で最大値をacc値と比較して設定します.その後、条件に合った価格を腕立て伏せした.

講師の説明

function solution(arr){         
  let answer=1, max=arr[0];
  for(let i=1; i<arr.length; i++){
    if(arr[i]>max){
      answer++;
      max=arr[i];
    }
  }
  return answer;
}