본문 바로가기

Algorithm/Brute Force

(Javascript) - 백준(BOJ) 21275번 : 폰 호석만

반응형

https://www.acmicpc.net/problem/21275

 

21275번: 폰 호석만

만약 문제의 조건에 맞는 X, A, B가 유일하게 존재한다면, X를 십진법으로 표현한 수와 A와 B를 공백으로 나누어 출력하라. 만약 만족하는 경우가 2가지 이상이라면 "Multiple"을, 없다면 "Impossible"을

www.acmicpc.net

brute force 문제였습니다.

 

📕 풀이방법

📔 입력 및 초기화

한 줄을 입력 받고 " "으로 split해 data변수에 저장합니다.

 

📔 풀이과정

 1. i진수, j진수로 각각 변환했을 때 수가 같다면 ans배열에 push합니다. 또한 i, j진수를 각각 num변수에 push합니다.

 2. 이 후 조건에 따라 출력합니다.

 

📔 정답출력

 ans가 2이 상이면 "Multiple", 0이면 "Impossible", 1이면 10진수 x, a진수, b진수를 출력합니다.


📕 Code

process.stdin.resume();
process.stdin.setEncoding("utf8");

let reader = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});

reader.on("line", (line) => {
  data = line.split(" ");
  let ans = [];
  let num = [];
  for (let i = 2; i <= 36; i++) {
    for (let j = 2; j <= 36; j++) {
      if (i == j) continue;
      if (parseInt(data[0], i) == parseInt(data[1], j)) {
        ans.push(parseInt(data[0], i));
        num.push(i);
        num.push(j);
      }
    }
  }
  if (ans.length == 0) console.log("Impossible");
  else if (ans.length >= 2) console.log("Multiple");
  else {
    console.log(ans[0], num[0], num[1]);
  }
  reader.close();
  process.exit();
});