문제
문제 출처 - https://www.acmicpc.net/problem/10811
풀이
1. 최초 바구니 내부 값 부여
let arr = new Array(N).fill(1).map((a, b) => a + b); // 1 2 3 4 5
2. 주어진 범위를 for 문으로 돌려 tmpArr 에 넣고 반전시키기
3. splice를 이용해 원래 있던 것을 잘라내고 붙이기
-- 이상 절차였고, 코드에서 주석으로 설명--
코드
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().split('\n');
const [N, M] = input[0].split(' ').map((item) => +item);
let arr = new Array(N).fill(1).map((a, b) => a + b); // 1 2 3 4 5
for (let i = 1; i <= M; i++) {
let [a, b] = input[i].split(' ').map((item) => +item);
let tmpArr = [];
for (let j = a; j <= b; j++) tmpArr.push(arr[j - 1]); // 바구니 안의 a 부터 b까지의 범위를 tmpArr 에 넣기
tmpArr.reverse(); // 반전시키기
arr.splice(a - 1, tmpArr.length,...tmpArr); // arr.splice(어디서부터, 없앨 개수, 없애고 가져올 것);
}
console.log(arr.join(' '));
'PS > 백준' 카테고리의 다른 글
[백준] [JS] 10809_알파벳 찾기 (0) | 2023.09.15 |
---|---|
[백준] [JS] 11654_아스키 코드 (0) | 2023.09.15 |
백준 3052 javascript | node.js (0) | 2023.09.12 |
백준 5597 javascript | node.js (0) | 2023.09.12 |
백준 10813 javascript | node.js (0) | 2023.09.12 |