Loading...
본문 바로가기
👥
총 방문자
📖
0개 이상
총 포스팅
🧑
오늘 방문자 수
📅
0일째
블로그 운영

여러분의 방문을 환영해요! 🎉

다양한 개발 지식을 쉽고 재미있게 알려드리는 블로그가 될게요. 함께 성장해요! 😊

백준 문제풀이/Nodejs

[백준][브루트포스] 1107 리모컨 NodeJs 구현

by 꽁이꽁설꽁돌 2024. 12. 25.
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);
    반응형