알고리즘_baekjoon1755

yejz0715·2023년 2월 14일
0

algorithem

목록 보기
2/2
post-thumbnail

알고리즘백준_1755숫자놀이

📌문제

💻코드


const readline = require("readline");
const solution = (input) => {
  let numM = Number(input.split(" ")[0]); //입력받은 수1
  let numN = Number(input.split(" ")[1]); //입력받은 수2
  let numArr = []; //입력받은 수 사이의 숫자들을 저장할 배열
  let tmp = "";
  let answer = "";
  let stringArr = [ 
    "zero",
    "one",
    "two",
    "three",
    "four",
    "five",
    "six",
    "seven",
    "eight",
    "nine",
  ];
  for (let i = numM; i <= numN; i++) { 
    numArr.push(i); //numM-numN 사이 수 저장
  }
  
  for (let j = 0; j < numArr.length; j++) {
   
    //한자리수 일때(ex) 08-> 8) 일의자리만..
    if (Number(numArr[j]) / 10 < 1) {
      
      //stringArr 인덱스 이용 숫자->영어로
      tmp += stringArr[Number(numArr[j]) % 10];
      tmp += "\n";
    } else {
      tmp += stringArr[Math.floor(Number(numArr[j]) / 10)] + " ";
      tmp += stringArr[Number(numArr[j]) % 10];
      tmp += "\n";
    }
  }

  tmp = tmp
    .split("\n")
    .map((item) => item.split(" "))
    .sort() //알파벳 순서대로 정렬 
    .map((item) => item.map((item) => stringArr.indexOf(item)).join("")) //indexOf로 영어->숫자로..
    .filter((item) => item !== "-1")
    .filter((item, index) => //10개씩 출력
      (index + 1) % 10 === 0 ? (answer += item + "\n") : (answer += item + " ")
    );

  return answer;
};

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

rl.on("line", (line) => {
  console.log(solution(line));
  rl.close();
});


baeckjoon1755_숫자놀이

profile
포기하지말자!

0개의 댓글