mark340
착하게살자
mark340
전체 방문자
오늘
어제
  • 분류 전체보기 (98)
    • 백준 (11)
    • 알고리즘 (1)
    • Javascript (17)
    • CS (18)
    • 기타 (9)
    • AI (1)
    • Angular (2)
    • Linux (14)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • JavaScript
  • oauth
  • MySQL
  • Closure
  • parsing

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
mark340

착하게살자

[백준 1931] 회의실 배정 / Node.js
백준

[백준 1931] 회의실 배정 / Node.js

2023. 1. 23. 18:28

https://www.acmicpc.net/problem/1931

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

 

  • 그리디 알고리즘(Greedy Algorithm, 탐욕 알고리즘)
  • 매 상황에서 최선의 선택을 하는 알고리즘을 의미
  • 알고리즘 문제를 풀기 위한 최적의 아이디어를 떠올릴 수 있는 능력을 요구한다
  • 본 문제에선 시작 시간이 빨라도 끝나는 시간이 너무 늦어버리면 다음 회의를 하지 못하는 경우가 생길 수 있다. => 최대한 회의실을 사용하기 위해서는 끝나는 시간이 빨라야 한다. 
  • 주의사항으로 회의실을 이용하는 시간은 겹칠 수 없다는 점도 유의한다.
  • 또한, 끝나는 시간이 같을 경우에는 일찍 시작을 해야 최대한 더 많이 이용을 할 수 있다.

 

let [N,...input] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n')
let meet = input.map((v) => v.split(' ').map(Number)).sort((a,b) => a[1]-b[1] || a[0]-b[0])
///회의시간을 끝나는 시간 순으로 정렬 // 끝나는 시간이 같을 경우 먼저 시작하는 순으로 정렬

let result = 0, recentEnd = 0;

meet.forEach(([start,end]) => {
  if(start < recentEnd){  // 시작시간이 끝나는 시간보다 작을 경우 다음 요소로 넘어가기
    return
  }
  result++;
  recentEnd = end;
})

console.log(result)
저작자표시 (새창열림)

'백준' 카테고리의 다른 글

[백준 13305] 주유소 / Node.js / 그리디 알고리즘 기초  (0) 2023.01.24
[백준 11047] 동전0 / Node.js / 그리디 알고리즘 기초  (0) 2023.01.23
[백준 2108] 통계학 / 배열 요소의 최빈값 구하기 / Object.entries()  (0) 2023.01.14
[백준 18870] 좌표 압축 / Map  (0) 2023.01.14
[백준 1181번] 단어정렬 / Set(배열중복제거) / localeCompare() (단어정렬)  (0) 2023.01.14
    '백준' 카테고리의 다른 글
    • [백준 13305] 주유소 / Node.js / 그리디 알고리즘 기초
    • [백준 11047] 동전0 / Node.js / 그리디 알고리즘 기초
    • [백준 2108] 통계학 / 배열 요소의 최빈값 구하기 / Object.entries()
    • [백준 18870] 좌표 압축 / Map
    mark340
    mark340
    착하게삽시다

    티스토리툴바