✨JSY
article thumbnail
Published 2023. 9. 12. 16:06
백준 10811 javascript | node.js PS/백준
문제

문제 출처 - https://www.acmicpc.net/problem/10811

 

10811번: 바구니 뒤집기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2

www.acmicpc.net

풀이

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
profile

✨JSY

@JUNSANG YOO

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!