boj 13300 javascript

2022. 6. 18. 15:19·Study

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

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

주어진 학생 데이터를 확인하면서 미리 선언된 배열에 나눠서 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 앱 연동  (7) 2022.01.05
'Study' 카테고리의 다른 글
  • 시간 복잡도
  • boj 1406 javascript
  • C 언어 기초
  • 컴퓨팅 사고
ByungjinSon
ByungjinSon
Imagine your world
  • ByungjinSon
    Castie
    ByungjinSon
  • 전체
    오늘
    어제
    • 분류 전체보기 (13)
      • Career (1)
      • Study (12)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    inappwebview
    dockerfile
    proxy
    adops
    PASS
    프로그래머스
    ReactNative
    flutter
    App
    애드옵스
    envoy
    githubactions
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
ByungjinSon
boj 13300 javascript
상단으로

티스토리툴바