결과 :
1주차에 공부했던 것(힙(Heap))을 바탕으로 프로그래머스에서 문제 풀이를 진행하였다.
*더 맵게
먼저 우선순위 큐를 선언 한 후, scovile배열의 원소들을 다 넣어주었다.
그리고 모든 원소가 k 이상이 될 때까지 반복하기 위해,
while문 조건은 q.peek()<K 로 설정하였다.
우선순위큐이기 때문에 정렬이 되어있고, 따라서 peek를 하게되면 가장 작은 값이기 때문이다.
그리고 얼마나 이 과정을 반복하는 지 count해서 리턴하여 해결하였다.
*디스크 컨트롤러
이 문제는 클래스를 이용하였다.
많은 풀이를 살펴보았는데 보통은 우선순위 큐 하나와 리스트를 이용하는 경우를 많이 보았다.
나도 첨엔 그렇게 하다가, 그냥 리스트 하나로 정렬을 하면 되지 않을 까 싶어서 이렇게 구현하였다.
리스트에다가 DiskRequest를 생성하여 집어넣고, Collections.sort를 통해 정렬해준다.
기본적으로는 작업의 소요시간(time)을 기준으로 정렬하였고, 작업의 소요시간이 같을경우 작업의 요청시간(start)가 기준이된다.
시작시간이 현재시간(t)보다 작은 경우에만 작업을 처리한다.
그래서 t를 증가시키고, answer에 각 작업의 요청부터 종료까지 걸린시간(현재시간-작업의 요청시간)을 추가한다.
만약 이 경우에 걸리지 않고, 시작시간이 현재시간보다 작지 않다면 시간을 1 초 증가시킨다.
이 작업을 리스트가 빌 때까지 반복한다.
그리고 jobs.length로 나눠 리턴하면 된다.
++ 디스크 컨트롤러 문제는 많은 시간을 헤맸다. 😂
예제는 해결했지만 계속 틀렸다고 나와서 많이 도전하였고 결국 검색의 힘을 많이 받았다.
따라서 다음에 다시 또 복습하고자 한다.
'모각코 > 2020_와플팬케잌호떡' 카테고리의 다른 글
3회차(01.04) - 결과 (0) | 2021.01.04 |
---|---|
3회차(01.04) - 목표 (0) | 2021.01.04 |
2회차(12.30) - 목표 (0) | 2020.12.30 |
1회차(12.28) - 결과 (0) | 2020.12.28 |
1회차(12.28) - 목표 (0) | 2020.12.28 |