🔥문제링크
https://www.acmicpc.net/problem/1021
🔥풀이
처음에는 연산횟수를 고려해서 arr의 배열원소의 shift를 하지않고 푸는 줄 알았는데 굳이 그러지 않고 그냥 shift와 push를 이용하면 쉽게 풀수 있다.
const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().split("\n");
const arr = input[1].split(" ").map((t) => Number(t));
const [n, m] = input[0].split(" ").map((t)=>Number(t));
let dic = [];
for (let i = 1; i <= n; ++i) {
dic.push(i);
}
const f1 = () => {
dic.shift();
};
const f2 = () => {
let v = dic.shift();
dic.push(v);
};
const f3 = () => {
let v = dic.pop();
dic.unshift(v);
};
let answer =0
for (let i = 0; i < arr.length; ++i) {
let target = arr[i];
if (dic[0] === target) {
f1();
} else {
let index = dic.indexOf(target)
let flag = dic.length/2
if (index < flag) {
while(dic[0]!==target){
f2();
answer+=1;
}
} else {
while(dic[0]!==target){
f3();
answer+=1;
}
}
f1();
}
}
console.log(answer);
'Algorithm' 카테고리의 다른 글
백준[JS] > 1058번 친구 (0) | 2024.10.31 |
---|---|
백준[JS] > 1051번 숫자 정사각형 (0) | 2024.10.31 |
백준[JS] > 1074번 Z (0) | 2024.10.28 |
프로그래머스[JS] > [PCCP 기출문제] 2번 / 퍼즐 게임 챌린지 (1) | 2024.09.11 |
프로그래머스[JS] > [PCCP 기출문제] 3번 / 충돌위험 찾기 (0) | 2024.09.11 |