Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 고대 문명 유적 탐사
- 오블완
- pcce 기출문제 10번 공원 풀이
- 잔디 기부 캠페인
- pcce 기출문제 9번 지폐 접기
- texture mapping
- pccp 기출문제 풀이
- root signature
- 코드트리 고대 문명 유적 탐사
- c++ 5567
- DirectX12
- pcce 기출문제 풀이
- 티스토리챌린지
- python 고대 문명 유적 탐사
- DirectX
- c++ 1991
- constant buffre
- PCCE
- 렌더링 파이프
- 백준 5567
- gemmasprint
- depth-stencil
- 프로그래밍공부
- pcce 기출문제 10번 지폐 접기 풀이
- boj 1991
- directx 그래픽스
- pcce 기출문제 10번 공원
- boj 5567
- 잔디 기부
- 수식 복원하기
Archives
- Today
- Total
오구의코딩모험
[Python] 디스크 컨트롤러 본문
반응형
[코딩테스트 고득점 KIT - 힙]
힙 파트 문제였지만,
jobs의 길이가 최대 500이기에 리스트와 정렬로 충분히 풀 수 가 있었다.
- jobs 배열을 요청시간 기준으로 오름차순으로 정렬하기,
요청시간으로 정렬하고 만약 같다면 소요시간을 기준으로 정렬 - 테스크 처리 도중에 들어온 테스크들은 요청시간과 상관없이 소요시간 기준으로 정렬,
이 경우가 각 작업의 요청부터 종료까지 걸린 시간의 평균 이 가장 적게 나온다. - 테스크 처리 도중이 아닌 경우에는 가장 첫 번째 값 처리
위 3 가지를 고려하여 코드를 작성하였다.
문제 속에서 2번 요구사항을 파악하는게 중요한 문제였지만,
3번 예외사항을 놓치고 있어서 19번 테케에서 통과를 못해 고생했다.
끝
def solution(jobs):
# 작업 소요시간, 요청 시점을 오름차순으로 정렬
jobs = sorted(jobs,key=lambda x: (x[0],x[1]))
# 하드디스크가 작업을 수행하고 있지 않을 때에는 먼저 요청이 들어온 작업부터 처리합니다.
answer = [jobs[0][1]]
time = jobs[0][0] + jobs[0][1]
l = len(jobs)
jobs.pop(0)
while(jobs):
# sp_t : 소요시간, idx : 작업 인덱스
sp_t = 0
idx = 0
for job in jobs:
# 작업 시점이 소요된 시간보다 큰 경우는 패스
if job[0] > time:
break
# 작업 시점을 초과한 경우
elif (job[0] <= time):
# 예상 소요시간 초기화
if sp_t == 0:
sp_t = job[1]
# 소요시간이 가장 작은 작업을 찾기
elif sp_t > job[1]:
sp_t = job[1]
idx = jobs.index(job)
# 소요시간이 가장 작은 작업 수행
if sp_t != 0:
answer.append(jobs[idx][1]+time-jobs[idx][0])
time += jobs[idx][1]
jobs.pop(idx)
# 작업 시점이 앞선 작업의 소요시간보다 큰 경우
elif sp_t == 0:
next_job = jobs.pop(0)
answer.append(next_job[1])
time += next_job[1]
# 소수점은 버린다.
return sum(answer)//l
반응형
'프로그래밍 공부 > 프로그래머스' 카테고리의 다른 글
[Python] H-Index (0) | 2023.01.02 |
---|---|
[Python] K번째수 (0) | 2023.01.01 |
[Python] 더 맵게 (0) | 2022.12.30 |
[Python] 주식가격 (0) | 2022.12.30 |
[Python] 주차 요금 계산 (0) | 2022.12.29 |
Comments