모든 수업을 들을 수 있는 최소 강의실 갯수를 구하는 문제 문제 김종혜 선생님한테는 Si에 시작해서 Ti에 끝나는 N개의 수업이 주어지는데, 최소의 강의실을 사용해서 모든 수업을 가능하게 해야 한다. 참고로, 수업이 끝난 직후에 다음 수업을 시작할 수 있다. (즉, Ti ≤ Sj 일 경우 i 수업과 j 수업은 같이 들을 수 있다.) 입력 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 10^9) 출력 강의실의 개수를 출력하라. 풀이 항상 나를 힘들게 하는 시간초과... 처음에 짰던 로직의 흐름은 맞았지만 계속 시간초과 나서 수정해야 했습니다. 처음에 짰던 코드 입력으로 주어지는 강의 시간들을 우선순위 큐에 저장한다. 우선..
N개의 숫자 묶음이 주어질 때 숫자 묶음들을 비교하려면 최소 몇 번만 비교하면 되는지 구하는 문제 문제의 조건 1. 정렬된 두 숫자 묶음이 있다. 두 묶음을 각각 A, B라 하면 두 묶음을 비교하는데 필요한 횟수는 A+B번이다. 2. 10장, 20장, 40장 처럼 2개보다 많은 숫자 묶음이 있을 때 2개씩 골라서 비교를 하는데 묶음들을 고르는 순서에 따라서 횟수가 달라진다. 10장과 20장을 먼저 합친 뒤(10+20=30), 남은 40장을 합치는 경우의 수를 더했을 때 (10+20)+(30+40)=100 총 100번의 비교가 필요하다. 하지만 10장과 40장을 합친 뒤(10+40=50), 남은 20장을 합치는 경우를 더하면 (10+40)+(50+20)=120 총 120번의 비교가 필요해서 100번보다는 ..
- Total
- Today
- Yesterday
- 프로그래밍
- 캐나다
- 컴퓨터사이언스
- 스위프트플레이그라운드
- C언어기초
- dp
- c++
- hackerrank
- 아이패드
- c언어
- BFS
- 하드웨어
- 영어공부
- 백준
- 컴퓨터공부
- 너비우선탐색
- 문제풀이
- 해커랭크
- 애플
- 프로그래머스
- 기초
- 코딩공부
- 캐나다생활
- 다이나믹프로그래밍
- 컴퓨터
- greedy
- 알고리즘
- 깊이우선탐색
- 그리디
- DFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |