Scheduling/스케줄링 알고리즘
2020. 4. 9. 16:21ㆍPS/Problem Solving
Code SASA가 다시 열린 기념으로 선배들이 만든 문제를 풀었다.
그러던 도중 예전에 풀었던 문제를 발견했다.
https://code.sasa.hs.kr/problem.php?id=1297
(전형적으로 보이는) 영화 스케줄링 문제이다. 어떻게 풀었나 싶어 봤더니 웬걸 N=100 인데도 불구하고 지수시간 알고리즘으로 백트래킹을 돌리고 있었다. 코드가 통과는 했지만, 기분이 영 찝찝하다. 그래서 Interval Scheduling에 대한 공부를 했다.
상황에 맞는 완벽한 블로그 포스팅이 있었다. https://suuntree.tistory.com/103
내가 필요했던 것은 1. 활동 선택 문제 (activity - selection problem) 에 대한 내용이었다.
결론적으로는 끝나는 시간이 앞에 오는 순으로 정렬한 다음, 차례대로 가능할 경우 선택해주면 된다.
느낌
귀류법으로 자신의 풀이를 증명한 것이 인상적이다.
그리디 기법을 사용할 때는 항상 증명이 필요하다는 것을 배웠다.
그리디에 대한 설명 글을 올린 적이 한번 있었는데, 정말 파도 파도 재밌는 문제 종류가 그리디인 것 같다.
아래 문제들은 대부분 재밌다.
https://codeup.kr/problemsetsol.php?psid=1
비고
참고한 블로그
https://potensj.tistory.com/45
https://suuntree.tistory.com/103
728x90
'PS > Problem Solving' 카테고리의 다른 글
[Code SASA] 정독실에서 tic-tac-toe (0) | 2020.05.23 |
---|---|
[Code SASA] 숫자 카드 게임 (0) | 2020.05.15 |
Codeup/코드업 3180 간단한 문제 풀기 위해 공부 했던 것들 (1) | 2020.03.26 |
내가 보려고 만든 소인수분해 방법 정리글 (0) | 2020.02.26 |
CodeUp에서 기억나는 문제 (0) | 2020.02.20 |