목록프로그래머스 (2)
Sonji-log

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42627분류Heap, SJF(Shortest Job First), Priority Queue시도한 방법문제는가상의 스케줄러를 만드는 일이다.가정에서는 중간중간에 발생하는 Context Switching에 걸리는 시간이 없다고 명시되어 있으므로, 단순히 작업하는 데 걸리는 시간의 총합을 반환하면 된다. 문제의 핵심은 잔여시간이 긴 작업이 처리되고 있을 경우, 다른 작업들은 계속 기다리기만 해야 한다는 점이다.이 부분은 전체 turn-around time을 크게 저해할 수 있으므로, 모든 작업이 끝났을 때 완료까지 걸리는 시간이 가장 짧은 작업을 우선해서 처리해야 한다고 해석할 수 있다.위 구조..
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/12927분류구현, 우선순위, 그리디 알고리즘시도한 방법문제에서 원하는 야근 피로도는 남은 작업양의 제곱합으로 구한다. 제곱은 대상 수가 클수록 더 빠르게 커지므로, 작업 개수 자체가 줄어드는 것 보다 각 작업의 남은 시간을 최대한 균일하고 적게 만드는 편이 제곱합을 줄이는 더 좋은 방법이다. 단순하게 남은 시간만큼 루프를 돌며 가장 큰 값에서 1씩 감산하는 방법을 선택했다.남은 작업량을 대상으로 Priority Queue를 사용하면 항상 가장 많이 남은 작업이 맨 앞으로 오기 때문에, 루프를 돌면서 Priority Queue의 맨 앞 작업이 1씩 감산하게 작성했다. 한 Epoch당 남아있는 ..