최대한 배열 회귀 횟수를 줄이는 방법을 생각했다.
일단 각 학년, 성별의 개수를 모을 배열을 미리 선언해놓고
주어진 학생 데이터를 확인하면서 미리 선언된 배열에 나눠서 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 |