|
| 1 | +# [level 2] 프린터 - 42587 |
| 2 | + |
| 3 | +[문제 링크](https://programmers.co.kr/learn/courses/30/lessons/42587) |
| 4 | + |
| 5 | +### 성능 요약 |
| 6 | + |
| 7 | +메모리: 10.1 MB, 시간: 0.04 ms |
| 8 | + |
| 9 | +### 구분 |
| 10 | + |
| 11 | +코딩테스트 연습 > 스택/큐 |
| 12 | + |
| 13 | +### 채점결과 |
| 14 | + |
| 15 | +<br/>정확성: 100.0<br/>합계: 100.0 / 100.0 |
| 16 | + |
| 17 | +### 문제 설명 |
| 18 | + |
| 19 | +<p>일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다.</p> |
| 20 | +<div class="highlight"><pre class="codehilite"><code>1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. |
| 21 | +2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. |
| 22 | +3. 그렇지 않으면 J를 인쇄합니다. |
| 23 | +</code></pre></div> |
| 24 | +<p>예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다.</p> |
| 25 | + |
| 26 | +<p>내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 알고 싶습니다. 위의 예에서 C는 1번째로, A는 3번째로 인쇄됩니다.</p> |
| 27 | + |
| 28 | +<p>현재 대기목록에 있는 문서의 중요도가 순서대로 담긴 배열 priorities와 내가 인쇄를 요청한 문서가 현재 대기목록의 어떤 위치에 있는지를 알려주는 location이 매개변수로 주어질 때, 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 return 하도록 solution 함수를 작성해주세요.</p> |
| 29 | + |
| 30 | +<h5>제한사항</h5> |
| 31 | + |
| 32 | +<ul> |
| 33 | +<li>현재 대기목록에는 1개 이상 100개 이하의 문서가 있습니다.</li> |
| 34 | +<li>인쇄 작업의 중요도는 1~9로 표현하며 숫자가 클수록 중요하다는 뜻입니다.</li> |
| 35 | +<li>location은 0 이상 (현재 대기목록에 있는 작업 수 - 1) 이하의 값을 가지며 대기목록의 가장 앞에 있으면 0, 두 번째에 있으면 1로 표현합니다.</li> |
| 36 | +</ul> |
| 37 | + |
| 38 | +<h5>입출력 예</h5> |
| 39 | +<table class="table"> |
| 40 | + <thead><tr> |
| 41 | +<th>priorities</th> |
| 42 | +<th>location</th> |
| 43 | +<th>return</th> |
| 44 | +</tr> |
| 45 | +</thead> |
| 46 | + <tbody><tr> |
| 47 | +<td>[2, 1, 3, 2]</td> |
| 48 | +<td>2</td> |
| 49 | +<td>1</td> |
| 50 | +</tr> |
| 51 | +<tr> |
| 52 | +<td>[1, 1, 9, 1, 1, 1]</td> |
| 53 | +<td>0</td> |
| 54 | +<td>5</td> |
| 55 | +</tr> |
| 56 | +</tbody> |
| 57 | + </table> |
| 58 | +<h5>입출력 예 설명</h5> |
| 59 | + |
| 60 | +<p>예제 #1</p> |
| 61 | + |
| 62 | +<p>문제에 나온 예와 같습니다.</p> |
| 63 | + |
| 64 | +<p>예제 #2</p> |
| 65 | + |
| 66 | +<p>6개의 문서(A, B, C, D, E, F)가 인쇄 대기목록에 있고 중요도가 1 1 9 1 1 1 이므로 C D E F A B 순으로 인쇄합니다. </p> |
| 67 | + |
| 68 | +<p><a href="http://www.csc.kth.se/contest/nwerc/2006/problems/nwerc06.pdf" target="_blank" rel="noopener">출처</a></p> |
| 69 | + |
| 70 | + |
| 71 | +> 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges |
0 commit comments