백준 문제풀이/Nodejs
[백준][브루트포스] 1107 리모컨 NodeJs 구현
꽁이꽁설꽁돌
2024. 12. 25. 19:07
728x90
반응형
목차
https://www.acmicpc.net/problem/1107
문제
문제 구현 방향
처음에는 이진탐색으로 해야하나 싶었지만 50000범위를 한번 루프돌면 충분한 시간 복잡도가 나올 것 같아
브루트 포스로 풀었다. (그리디인가? 했지만 너무 복잡해보여서 브루트포스부터 트라이)
문제 구현 시 주의점
3번째 입력이 주어지지 않을 수 있기 때문에 빈 입력을 받을려 하면 85%에서 error가 뜨니 주의하자
나는 50만에서 충분히 범위를 넓혀 주었다.
코드 구현
const input = require("fs")
.readFileSync("./dev/stdin", "utf-8")
.trim()
.split("\n");
let a = input[0].trim();
let broken = [];
if (Number(input[1]) !== 0) {
broken = input[2].trim().split(" ").map(Number);
}
let brokenSet = new Set(broken);
let first = Math.abs(100 - Number(a));
let gap = 999999999;
for (let i = 0; i <= 1000000; i++) {
let n = [...String(i)];
const truth = n.some((item) => brokenSet.has(Number(item)));
if (!truth) {
let ngap = Math.abs(Number(a) - i) + String(i).length;
gap = Math.min(gap, ngap);
}
}
gap = Math.min(first, gap);
console.log(gap);
반응형