문제링크 :https://programmers.co.kr/learn/courses/30/lessons/42587
문제설명
현재 대기목록에 있는 문서의 중요도가 순서대로 담긴 배열 priorities와 내가 인쇄를 요청한 문서가 현재 대기목록의 어떤 위치에 있는지를 알려주는 location이 매개변수로 주어질 때, 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 return 하는 solution 함수
알고리즘
처음에 푸는 문서 중요도가 똑같은 것 들 때문에 계속 테스트케이스를 통과하지 못했다.
그래서 다른 블로그를 참고하였다. ㅠ ㅠ
1. 문서중요도 리스트를 만들고 idx 리스트를 만듦
2. i 변수를 통해 프린터 되는 것을 처리한다.
3. 뒤에 문서 중요도가 나보다 높은것이 있으면 문서를 맨뒤로 보낸다.
4. 현재 문서의 중요도가 가장높으면 i +=1 해준다.
5. 만약 문서중요도를 정렬한 리스트와 현재 문서 의 리스트가 같다면 break 해준다.
6. 뽑아야하는 문서의 idx+1 을 return 한다.
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #프린터 def solution(priorities, location): value = []+priorities idx = [c for c in range(len(priorities))] i = 0 while 1: #뒤에 문서중요도가 나보다 높은것이 있으면 if value[i] < max(value[i+1:]): value.append(value.pop(i)) idx.append(idx.pop(i)) else : i+=1 if value ==sorted(value,reverse=True): break return idx.index(location)+1 | cs |
'파이썬 > 프로그래머스' 카테고리의 다른 글
[python ] 프로그래머스 - 가장 큰 수 (0) | 2020.08.05 |
---|---|
[python] 프로그래머스 - k 번째 수 (0) | 2020.08.05 |
[python] 프로그래머스 - 다리를 지나는 트럭 (0) | 2020.08.05 |
[python] 프로그래머스 - 오픈 채팅방 (0) | 2020.08.04 |
[python] 프로그래머스 -후보키 (0) | 2020.08.04 |