백준 알고리즘/Lang-node.js

[백준/node.js] 23971번 ZOAC 4

Jongung 2022. 1. 8. 22:47

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

 

23971번: ZOAC 4

i행 j열 자리를 (i, j)라고 할 때, (1,1)에 참가자가 앉은 경우 다른 참가자는 (1,2), (2,1), (2,2) 자리를 제외한 나머지 자리에 앉을 수 있다. (2,2)의 경우는 (1,1)과 행 번호 및 열 번호의 차가 1보다 크

www.acmicpc.net

 

  • 사용언어 : node.js
  • 알고리즘 : 수학, 구현 ,사칙연산
  • Solved.ac Tier : Bronze III

 

 

node.js 코드

1. 문제 정리

ZOAC이라는 행사를 하기 위해 강의실을 빌려야 하는데 강의실에서 대회를 치르려면 거리두기를 해야한다고 한다.
테이블이 행마다 W개씩 H행에 걸쳐 있을 때 모든 참가자들은 세로로 N칸 가로로 M칸을 비우고 앉아야 한다.
거리두기를 지키면서 최대 몇 명을 수용 할 수있는지 구해보자.

let seat = 0;

seat+= Math.ceil(input[0] / (parseInt(input[2])+1)) ;
seat*= Math.ceil(input[1] / (parseInt(input[3])+1)) ;

문제의 공식은 이러하다.
좌석의 개수를 알면 되니 일단 가로로 몇 명, 세로로 몇 명 앉을 수 있나 계산 해본 뒤 둘을 곱해주면 된다.
가로를 구하는 법은 H / N + 1일 것이고, 세로를 구하는 법은 W / M + 1일 것이다.

 

2. 완성 코드

let input = require('fs').readFileSync('/dev/stdin').toString().split(" ") // /dev/stdin
let seat = 0;

seat+= Math.ceil(input[0] / (parseInt(input[2])+1)) ;
seat*= Math.ceil(input[1] / (parseInt(input[3])+1)) ;

console.log(seat)