[백준] 5014 스타트링크 - javascript
📌 문제
https://www.acmicpc.net/problem/5014
📌 풀이
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "input.txt";
let input = fs.readFileSync(filePath).toString().trim().split("\n");
let [f, s, g, u, d] = input[0].split(" ").map(Number);
let visited = new Array(2000001).fill(0);
let cnt = 0;
let flag = true;
let queue = [];
queue.push(s);
visited[s] = 1;
while (queue.length) {
let len = queue.length;
for (let i = 0; i < len; i++) {
let x = queue.shift();
if (x === g) {
flag = false;
visited[x] = 1;
console.log(cnt);
}
for (let k of [x + u, x - d]) {
if (visited[k] === 0 && k >= 1 && k <= f) {
visited[k] = 1;
queue.push(k);
}
}
}
if (flag === false) {
break;
}
cnt++;
}
if (flag) {
console.log("use the stairs");
}
✔ 알고리즘 : BFS
✔ 이동횟수의 최소값을 구하는 문제
✔ 이미 도착한 층을 visited 배열을 통해 검사하였다.
❗ 주의 : 음수층과 건물의 총높이를 벗어나는 층은 도달할 수 없다
if (visited[k] === 0 && k >= 1 && k <= f) {
visited[k] = 1;
queue.push(k);
}
✔ 난이도 : 백준 기준 골드 5
Author And Source
이 문제에 관하여([백준] 5014 스타트링크 - javascript), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ywc8851/백준-5014-스타트링크-javascript저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)