https://www.acmicpc.net/problem/17298
17298번: 오큰수
첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.
www.acmicpc.net
알고리즘 : 구현
그냥 문제를 풀면 시간초과와 메모리 초과가 발생해 stack을 활용해서 풀었다.
let input = require("fs")
.readFileSync("input.txt") //"/dev/stdin"
.toString()
.split("\n")
.map((val) => val.trim());
let n = +input.shift();
let nums = input.shift().split(" ").map(v=>+v);
function solution() {
let ans = [];
let stk = [];
for(let i=n-1;i>=0;i--){
if(!stk.length) {
stk.push(nums[i]);
ans.push(-1);
continue;
}
while (stk.at(-1) <= nums[i]) {
stk.pop();
}
if (!stk.length) {
ans.push(-1);
stk.push(nums[i]);
} else {
ans.push(stk.at(-1));
stk.push(nums[i]);
}
}
console.log(ans.reverse().join(" "));
}
solution();
'코딩테스트(알고리즘) > baekjoon' 카테고리의 다른 글
[baekjoon] 2589 보물섬 (Javascript) (0) | 2023.01.30 |
---|---|
[baekjoon] 15686 치킨 배달 (Javascript) (0) | 2023.01.29 |
[baekjoon] 1325 효율적인 해킹 (Javascript) (0) | 2023.01.27 |
[baekjoon] 1068 트리 (Javascript) (0) | 2023.01.27 |
[baekjoon] 2636 치즈 (Javascript) (0) | 2023.01.26 |