[알고리즘 연습] 백준 15721 (번데기, 자바스크립트)

sanbondeveloper·2023년 5월 11일
2

알고리즘 연습

목록 보기
12/21

문제

백준 15721 번데기

풀이

T번째 ‘뻔’ 또는 ‘데기’를 외친 사람의 번호를 구한다.

1) T의 최대치가 10000으로 n은 10000보다 작기 때문에 완전 탐색으로 구할 수 있다.

2) 매 회차마다 게임 규칙에 따라 문장을 생성하고 ('뻔' = 0, '데기' = 1 ) flag와 해당 값이 같은 경우 cnt를 증가한다.

3) answer로 현재 단어를 외치고 있는 사람을 추적한다.

소스 코드

const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
const input = require("fs")
  .readFileSync(filePath)
  .toString()
  .trim()
  .split("\n");

const A = +input[0];
const T = +input[1];
const flag = +input[2];
let n = 0;
let cnt = 0;
let answer = 0;

while (true) {
  n += 1;
  const arr = [0, 1, 0, 1];
  for (let i = 1; i <= n + 1; i++) arr.push(0);
  for (let i = 1; i <= n + 1; i++) arr.push(1);

  for (const x of arr) {
    if (x === flag) cnt++;
    if (cnt === T) {
      console.log(answer);
      return;
    }

    answer += 1;
    answer %= A;
  }
}
profile
산본개발자

0개의 댓글