본문 바로가기

study

boj 13300 javascript

최대한 배열 회귀 횟수를 줄이는 방법을 생각했다.

일단 각 학년, 성별의 개수를 모을 배열을 미리 선언해놓고

주어진 학생 데이터를 확인하면서 미리 선언된 배열에 나눠서 1 씩 할당한다.

그 이후에 완성된 배열 요소를 각각 방별 최대인원으로 나누고 올림처리한 뒤에 모두 더해주면 최소 방의 개수를 알 수 있다.

 

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const max = Number(input[0].split(' ')[1]);
const rooms = Array(13).fill(0);

for(let i = 1; i < input.length; i++) {
  const student = input[i].split(' ').map((el) => Number(el));
  rooms[student[0] ? student[1] + 6 : student[1]]++;
}

const roomsArr = rooms.map((el) => Math.ceil(el / max))
console.log(roomsArr.reduce((prev, curr) => prev + curr, 0))

'study' 카테고리의 다른 글

시간 복잡도  (0) 2022.06.21
boj 1406 javascript  (0) 2022.06.20
C 언어 기초  (0) 2022.06.17
컴퓨팅 사고  (0) 2022.06.15
Flutter 하이브리드 환경에서 PASS 앱 연동  (6) 2022.01.05