프로그래머스 레벨 3 2

[Java] 프로그래머스 Level 3 : 디스크 컨트롤러

- 문제설명 & 제한사항 - 예시 - 해결과정 첫 번째 오답 : 가장 먼저 입출력 예제와 같은 상황을 처리 하기위해, 우선순위 큐에 작업 소요시간이 적은 순으로 담고 작업을 처리하는 코드를 작성했다. 어떠한 예외상황도 생각하지 않아 당연히 오답. 두 번째 오답 : 제한사항에 보면, 하드디스크가 작업을 수행하고 있지 않을 때에는 '먼저' 들어온 작업부터 처리한다는 조건이 있다. 이를 바탕으로 첫 작업이 들어오고 끝나는 시점에서 이전 시간에 요청이 들어온 작업이 있다면 이를 모두 작업 큐(우선순위 큐)에 담아놓고 큐에 있는 '모든' 작업을 처리하고 다음 작업을 받도록 했다. 이 해결방법이 테스트 케이스의 절반 이상을 통과하지 못한 것을 보고 뭐가 문제인지 생각해봤다. 큐에 있는 모든 작업을 처리하고 새 입력..

[Java] 프로그래머스 Level 3 : 단속카메라

- 문제설명 & 제한사항 - 예시 & 입출력 예 - 해결과정 전체적인 그림을 먼저 그려봤을 때, 주어진 배열을 임의의 기준으로 정렬 한뒤 첫 번째 차량부터 마지막 차량까지 순회하며 각각의 상황에서 카메라를 설치할지 말지 최선의 해를 구하는것이 그리디한 해법이라고 생각했다. 첫 번째 풀이는 다음과 같다. 첫 번째로 생각한 정렬의 기준은 진입 지점의 오름차순이었다. 해당 방식으로 정렬하고나면 우선 설치한 카메라의 좌표를 담고있는 리스트에 1번 차량의 이탈지점을 넣어준다. 이후 반복문을 돌면서 다음 차량의 진입 지점이 카메라 좌표를 넘지 않았다면 해당 차량은 굳이 추가 카메라를 설치할 필요 없이 기존의 카메라로 촬영 가능하다 라는 최선의 해에 도달하게 된다. 만약 차량의 진입 지점이 기존의 카메라 좌표를 넘었..