백준 10250번 ACM호텔-JS

yugyeongKim·2021년 10월 17일
0

백준

목록 보기
16/52
post-custom-banner

- 내가 제출한 코드

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

let T = Number(input.shift()); //테스트 데이터 개수
let answer = '';

for(let i = 0; i < T; i++) {
  let arr = input[i];
  let H = Number(input[i].split(' ')[0]); //6 10

  let N = Number(input[i].split(' ')[2]); //10 32
  let floor = 0;
  floor = ((N%H) === 0)? H :(N%H);
  let room = Math.ceil(N/H);
  room >=10 ? room : (room = String(0) + room);

  answer += `${floor}${room}` + "\n" ;
}

console.log(answer);

계속 안됐던 이유가

room = ((N/H) >=10) ? Math.ceil(N/H) : '0' + Math.ceil(N/H);

이렇게 하니까 안됐었다. '0'대신에 String(0)을써도 안됐다. 나는 저거랑 저거 차이를 잘 모르겠다. 왜지? 암튼 다음에도 저런식으로 해서 안되면 위에 성공한 코드처럼 짜자. 기억하자 저거!!

  • 문제풀이
    층수가 부터 증가하고 H만큼 차면 호수가 증가하는 식으로 인원을 배정한다.
  1. 층수 = N/H의 나머지 근데 딱 떨어지면 즉, 나머지가0이면 H가 됨
  2. 호수 = N/H의 몫만큼 근데 몫이 10보다 작으면 앞에 '0'을 붙인다. ex)402호
post-custom-banner

0개의 댓글