문제링크https://www.acmicpc.net/problem/11000 제출코드 일단 수업들을 시작시간이 빠른순으로 정렬하고 시작시간이 같으면 끝나는 시간이 빠른시간 순으로 정렬하였다.그리고 정렬한 수업들을 순회하면서 최소 힙과 비교하면서(힙을 안쓰고 정렬을 이용하면 연산횟수가 기하급수적으로 많아서 시간초과가 발생한다.) 비어있는 강의실이 없는 경우 힙에 새롭게 추가하였다. 여기서 추가할 때 수업의 끝나는 시간만 힙에 추가했다. ( 우리가 필요한 정보는 수업이 끝나는 시간이기 때문이다. )마지막에 힙의 사이즈를 통해 몇개의 강의실이 쓰였는 지 알 수 있다.참고) 자바스크립트에서는 힙 자료구조를 직접 구현해야 한다.class MinHeap { constructor() { this.he..
골드5
문제 링크https://www.acmicpc.net/problem/1092 해설큰 문제 없이 해결 가능했다. const fs = require("fs");const input = fs.readFileSync("/dev/stdin").toString().split("\n");const craneCnt = Number(input[0]);const craneArr = input[1].split(" ").map((n) => Number(n));craneArr.sort((a, b) => b - a);const boxCnt = Number(input[2]);const boxArr = input[3].split(" ").map((n) => Number(n));boxArr.sort((a, b) => b - a);if ..
🔥문제링크https://www.acmicpc.net/problem/1074 🔥풀이일단 2**N X 2**N 이루어진 배열에서 2**N-1 * 2**N-1 으로 4개의 영역 중 어떤 영역에 속해있는지 판별하면서 재귀적으로 스코프를 계속해서 좁혀 나갔다. 좁혀나가면서 Skip한 영역에 속해있는 개수를 지속해서 answer에 더하였다.// 5분const fs = require("fs");const input = fs.readFileSync("/dev/stdin").toString();//.split("\n");let [N, r, c] = input.split(" ").map((n) => Number(n));if(N===1){ if(r==0&&c==0){ console.log(0) }..