문자열은 효율성을 크게 신경 쓰지 않아도 된다
그래도 최선을 다하자
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;
}