문자열은 효율성을 크게 신경 쓰지 않아도 된다
그래도 최선을 다하자
function solution(nums, m) {
  let answer;
  let n = nums.length;
  for (let i = 0; i < m; i++) {
    for (let j = 0; j < n - i - 1; j++) {
      nums[j] = nums[j + 1] - nums[j];
    }
  }
  answer = nums.slice(0, n - m);
  return answer;
}
function solution(nums) {
  let answer = 0;
  let heigth = 0;
  for (let rt = 1; rt < nums.length; rt++) {
    if (nums[rt - 1] < nums[rt]) heigth += nums[rt] - nums[rt - 1];
    else {
      answer = Math.max(answer, heigth);
      heigth = 0;
    }
    answer = Math.max(answer, heigth);
  }
  return answer;
}
function solution(nums) {
  let up = 1,
    down = 1,
    maxup = 0,
    maxdown = 0;
  for (let i = 1; i < nums.length; i++) {
    if (nums[i - 1] < nums[i]) up++;
    else (maxup = Math.max(maxup, up)), (up = 1);
    if (nums[i - 1] > nums[i]) down++;
    else (maxdown = Math.max(maxdown, down)), (down = 1);
  }
  maxup = Math.max(maxup, up);
  maxdown = Math.max(maxdown, down);
  let answer = Math.max(maxup, maxdown);
  return answer;
}
function solution(nums) {
  let answer = "YES";
  let n = nums.length;
  let i = 0;
  while (i + 1 < n && nums[i] < nums[i + 1]) i++;
  if (i === 0 || i === n - 1) answer = "NO";
  while (i + 1 < n && nums[i] > nums[i + 1]) i++;
  if (i !== n - 1) answer = "NO";
  return answer;
}
function solution(nums) {
  let peek = 0,
    cnt = 0,
    cnt2 = 0;
  nums.forEach((n) =>
    n === 0 ? (cnt++, peek < cnt ? (peek = cnt) : false) : (cnt = 0)
  );
  if (nums[0] === 0 || nums[nums.length - 1] === 0) {
    for (let i = 0; i < nums.length; i++) {
      if (nums[i] === 0) cnt2++;
      else break;
    }
    peek = Math.max(peek, cnt2);
    cnt2 = 0;
    for (let i = nums.length - 1; i > 0; i--) {
      if (nums[i] === 0) cnt2++;
      else break;
    }
    peek = Math.max(peek, cnt2);
  }
  return parseInt(peek / 2);
}
function solution(nums) {
  const arr = nums.map(
    (n, i) => (n = [i, n.reduce((acc, current) => acc + current)])
  );
  arr.sort(([, a], [, b]) => a - b);
  return arr.map((e) => e[0]);
}
function solution2(nums) {
  let answer = [];
  let n = nums.length;
  for (let i = 0; i < n; i++) {
    let min = nums[i][0];
    let pos = 0;
    for (let j = 0; j < n; j++) {
      if (nums[i][j] < min) {
        min = nums[i][j];
        pos = j;
      }
    }
    let row;
    for (row = 0; row < n; row++) {
      if (nums[row][pos] < min) break;
    }
    if (row == n) answer.push(min);
  }
  answer.sort((a, b) => a - b);
  return answer;
}
function solution3(nums) {
  let answer = 0;
  let n = nums.length;
  let dx = [-1, 0, 1, 0];
  let dy = [0, 1, 0, -1];
  for (let i = 0; i < n; i++) {
    for (let j = 0; j < n; j++) {
      let flag = true;
      for (let k = 0; k < 4; k++) {
        let nx = i + dx[k];
        let ny = j + dy[k];
        if (
          nx >= 0 &&
          nx < n &&
          ny >= 0 &&
          ny < n &&
          nums[nx][ny] >= nums[i][j]
        ) {
          flag = false;
          break;
        }
      }
      if (flag) answer++;
    }
  }
  return answer;
}
function solution(arr) {
  let answer = 0;
  let n = arr.length;
  let dist = Array.from({ length: n }, () => 0);
  let ch = Array.from({ length: n }, () => 0);
  ch[0] = 1;
  let d = 1;
  for (let i = 1; i < n; i++) {
    if (arr[i - 1] < arr[i]) {
      d++;
      dist[i] = d;
    } else {
      d = 1;
      ch[i] = 1;
    }
  }
  d = 1;
  ch[n - 1] = 1;
  for (let i = n - 2; i >= 0; i--) {
    if (arr[i] > arr[i + 1]) {
      d++;
      dist[i] += d;
    } else {
      d = 1;
      ch[i] = 1;
    }
  }
  for (let i = 0; i < n; i++) {
    if (ch[i] === 0 && dist[i] - 1 > answer) {
      answer = dist[i] - 1;
    }
  }
  return answer;
}