Poylib
기록형 프론트엔드
Poylib
전체 방문자
오늘
어제
  • 분류 전체보기 (91)
    • Programing (38)
      • Javascript (17)
      • Typescript (1)
      • React (9)
      • React-Native (6)
      • Git (4)
      • Next (1)
    • Study (36)
      • Algorithm (35)
      • Etc. (1)
    • Record (17)
      • Memoirs (12)
      • Group (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Error
  • react-native
  • ReactNative
  • 코칭스터디
  • react
  • Object
  • 리액트
  • 회고
  • 자바스크립트
  • Git
  • vite
  • 프로그래머스
  • 알고리즘
  • javascript
  • typescript
  • 코딩테스트
  • 기초
  • 백준

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Poylib

기록형 프론트엔드

[BEAKJOON / node.js] 1931 회의실 배정
Study/Algorithm

[BEAKJOON / node.js] 1931 회의실 배정

2022. 5. 24. 00:00
https://www.acmicpc.net/problem/1931

// test.txt
11
1 4
3 5
0 6
5 7
3 8
5 9
6 10
8 11
8 12
2 13
12 14

최대한 많은 회의를 열려면 종료시간이 빠른 회의 순으로 정렬 후 끝나자마자 바로 시작 가능한 회의의 개수를 세면 된다.

 

sol1

let [num,...input] = require('fs').readFileSync('test.txt').toString().trim().split('\n');

arr = input.map(v => v.split(' ').map(i => Number(i)))
let time = arr.sort((a,b) => a[1] - b[1]||a[0]-b[0])
let end = 0;
let answer = 0;
time.forEach((e) => {
  if(end <=e[0]) {
    answer++;
    end= e[1];
  };
});
console.log(answer);	//4

오름차순 정렬시 회의가 열리자마자 끝날 경우까지 생각해서 정렬해줘야 한다. 

let time = arr.sort((a,b) => a[1] - b[1]||a[0]-b[0])
// 정렬되는 내용은 같다
let time = arr.sort((a,b) => a[1] === b[1] ? a[0]-b[0] : a[1]-b[1])

for문을 사용해  풀려면

let [num,...input] = require('fs').readFileSync('test.txt').toString().trim().split('\n');

arr = input.map(v => v.split(' ').map(i => Number(i)))
let time = arr.sort((a,b) => a[1] - b[1]||a[0]-b[0])
let end = 0;
let answer = 0;
// foreach 이하를 for문으로 변경
for(let i=0;i<num;i++) {
  if(end <=time[i][0]) {
    answer++;
    end = time[i][1];
  }
}

 

저작자표시 비영리 변경금지 (새창열림)

'Study > Algorithm' 카테고리의 다른 글

[BEAKJOON / node.js] 13305 주유소  (0) 2022.05.28
<BEAKJOON / node.js> 11399 ATM  (0) 2022.05.24
<BEAKJOON / node.js> 11047 동전 0  (0) 2022.05.22
<programmers / JavaScript> 로또의 최고 순위와 최저 순위  (0) 2022.05.18
[programmers / JavaScript] K번째 수  (0) 2022.05.06
    'Study/Algorithm' 카테고리의 다른 글
    • [BEAKJOON / node.js] 13305 주유소
    • <BEAKJOON / node.js> 11399 ATM
    • <BEAKJOON / node.js> 11047 동전 0
    • <programmers / JavaScript> 로또의 최고 순위와 최저 순위
    Poylib
    Poylib
    모시깽 기록

    티스토리툴바