반응형
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
- 문맥교환
- 실행엔진
- Databricks
- 하둡1.0
- 스파크
- Spark 최적화
- 데이터 수집
- 프로그래머스
- AWS Crawler
- 데이터파이프라인
- kafka 설치
- 카프카
- Spark
- 빌드도구
- EMR 구조
- ORACLE MSSQL차이
- 하둡
- freenom
- 프로그래머스힙
- 프로그래머스 큰 수 만들기
- ORACLE문법
- 데이터베이스복사
- lazy evaluation
- 서버간 복사
- 런타임데이터영역
- 하둡2.0
- 하둡에코시스템
- 지연연산
- Catalyst Optimizer
- 데이터엔지니어링
Archives
- Today
- Total
띵유로그
[프로그래머스][큐][프린터] 본문
반응형
내 풀이
def solution(priorities, location):
answer = 0
print_list=[]
for i in range(len(priorities)):
print_list.append((priorities[i], i))
cnt=0
while len(print_list)!=0 :
job=print_list.pop(0)
if len(print_list)!=0 and job[0] >= max(print_list)[0]:
cnt=cnt+1
if job[1]==location:
answer=cnt
break
elif len(print_list)==0:
cnt=cnt+1
answer=cnt
break
else:
print_list.append(job)
return answer
그냥 머릿속에 생각나는 그대로를 구현하면 된다.
1. 제일 앞에서 하나를 뻄 (pop)
2. 뺸것이 최댓값이면 출력함(cnt=cnt+1)
2-1. 마지막 원소면 max(print_list)에서 오류가 나므로 따로 뺴주었다. (elif)
3. 이때 내가 구하려던 인쇄물이면 answer 이된다. (if job[1]==location)
4. 우선순위가 더 높은게 있다면 다시 뒤로 넣어줌
=> 정리 : 우선순위가 가장 높으면 프린트한다. 프린트 할때마다 내가 구하려던 인쇄물인지 check 한다.
다른사람 풀이)
1. enumerate를 이용
print_list = [(i,p) for i,p in enumerate(priorities)]
2. dequeue를 사용
-> pop(0)을 하면 모든 원소를 다시 앞으로 땡겨주어야 하기 때문에 O(n)만큼 소요.
deque의 popleft()함수를 사용하는것이 더 효율적
from collections import deque
3. 커서를 이용한 풀이
결국 return 해야하는것은 내가 찾는 인쇄물의 출력 순서이다. 다른 출력물은 신경 쓸 필요가 없으므로 그냥 cursor로 순회하면서 출력된것은 0 으로 바꿔준다. 내껄 출력할때까지 리스트를 순회하면 된다.
(리스트 뒤에 다시 넣는것 = cursor를 통해 순회하는 것)
배워야겠다...전혀 생각하지 못했다.
def solution(priorities, location):
jobs = len(priorities)
answer = 0
cursor = 0
while True:
if max(priorities) == priorities[cursor%jobs]:
priorities[cursor%jobs] = 0
answer += 1
if cursor%jobs == location:
break
cursor += 1
return answer
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스][정렬]K번째 수 (0) | 2020.08.24 |
---|---|
[프로그래머스][힙]더맵게 (0) | 2020.08.23 |
[프로그래머스][스택][기능개발] (0) | 2020.08.16 |
[프로그래머스][해시][위장] (0) | 2020.08.04 |
[백준1874] 스택 수열 (0) | 2019.08.03 |
Comments