https://www.acmicpc.net/problem/11866
[유형]
- 구현
- 자료 구조
- 큐
[풀이]
K 번째를 제거하면서 배열에 넣어줌
대략 아래 처럼
[코드 풀이]
const fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split(' ');
const n = +input[0]; // string -> number
const k = +input[1];
let ans = [];
//n 길이의 1~n 배열 생성
let arr = Array.from({length: n}, (v, i) => i + 1);
for(let i=0; i<n; i++) { // 배열의 길이만큼 반복
for(let j=1; j<=k; j++){ // 첫번째붙 3번째까지만 반복
if(j === k) { //3번째 빼서 temp에 넣기
ans.push(arr.shift());
}else{ //arr 배열 맨앞에 있는걸 맨뒤로 보내기
arr.push(arr.shift());
}
}
}
// console.log('ans🍀', ans);
console.log('<'+ans.join(', ')+'>')
✅ Array.from( {length: n} , (v, i) => i + 1 )
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/from
얕게 복사된 새로운 어레이 인스턴스 생성
{length: n} 객체를 전달하여 배열의 길이를 설정
배열의 각 요소는 (v, i) => i+1 함수에 의해 초기화, -> 이 함수는 두 개의 매개변수를 가지며, 각 요소의 값(value) 과 인덱스(index) 를 나타낸다. 여기서 인덱스에 1을 더하여 각 요소의 값으로 설정한다
결과적으로 이 코드는 1부터 n 까지의 값을 값는 배열을 생성한다.
✅ Array.shift()
shift() 메서드는 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환!
728x90
반응형
'자료구조+알고리즘 > BOJ' 카테고리의 다른 글
[백준2167-silver5] 2차원 배열의 합 (javascript) (1) | 2024.03.05 |
---|---|
[BOJ-10845_silver4] 큐 (자바스크립트) (0) | 2024.03.02 |
[BOJ-24511_silver3] queuestack (javascript) (0) | 2024.03.02 |
[BOJ-17413_silver3] 단어 뒤집기2 (javascript) (0) | 2024.02.29 |
[BOJ-10773-Siver4]제로 (javascript) (0) | 2024.02.29 |