백준/ Silver 3 문제 , 백준 Node.js 자바스크립트 2346 , 풍선 터뜨리기
문제 출처
https://www.acmicpc.net/problem/2346
풀이
파이썬으로는 rotate 함수에 인수 넣어서 그냥 돌리면 되는데
자바스크립트에는 rotate 함수가 없어서 직접 구현해보았다.
참고로 이 문제는 자바스크립트로 제출 했을때 메모리초과가 발생하여서 파이썬으로 제출하여 풀었다.
질문 게시판에서도 자바스크립트로는 메모리 초과때문에 통과 못했다는데 혹시 통과하신 분들 계신지 궁금
이 문제로 자바스크립트 rotate 구현에 연습이 많이 되었다.
정답
메모리 초과 발생!!!
const input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
const RotateLeft = (nums, a) => {
if (nums.length < a) a %= nums.length;
let spliced = nums.splice(nums.length - a, nums.length);
nums = [...spliced, ...nums];
return nums;
};
const RotateRight = (nums, a) => {
if (nums.length < a) a %= nums.length;
let spliced = nums.splice(0, a);
nums = [...nums, ...spliced];
return nums;
};
const T = Number(input[0]);
const arr = input[1].split(" ").map(Number);
dq = [];
for (const [i, e] of arr.entries()) dq.push([i, e]);
let result = [];
while (dq.length !== 0) {
console.log(dq);
let [idx, next] = dq.shift();
result.push(idx + 1);
if (next > 0) {
dq = RotateRight(dq, next - 1);
} else {
dq = RotateLeft(dq, -next);
}
}
console.log(result.join(" "));
반응형
'알고리즘 공부 > 백준 - 자바스크립트' 카테고리의 다른 글
백준/ Silver 2 문제 , 백준 Node.js 자바스크립트 11048 , 이동하기 [dp] (0) | 2022.09.20 |
---|---|
백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 12865 , 평범한 배낭 (0) | 2022.09.19 |
백준/ Silver 3 문제 , 백준 Node.js 자바스크립트 1904 , 01타일 [dp] (0) | 2022.09.15 |
백준/ Silver 4 문제 , 백준 Node.js 자바스크립트 15624 , 피보나치 수 7 (0) | 2022.09.13 |
프로그래머스 / Level2 , 연습문제 , 최솟값 만들기 자바스크립트 , JS (0) | 2022.09.12 |