[programmers] 프로그래머스 Level2 프린터
(파이썬 Python)
* 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제
1) 문제
2) 코드
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
32
|
from collections import deque
def solution(priorities, location):
# queue = []
queue = list(deque())
for i in range(len(priorities)) :
queue.append([priorities[i], i])
answer = 0
while(len(queue) != 0) :
first = queue.pop(0)
first_priority = first[0]
is_highest = True
for i in range(len(queue)) :
if (first_priority < queue[i][0]) :
is_highest = False
break
if (is_highest == True) :
answer += 1
if (first[1] == location) :
return answer
else :
queue.append(first)
return answer
|
cs |
3) 풀이 과정
이중리스트를 사용하여 priorities의 각 값과 인덱스를 뭉텅이로 넣을 것.
[priorities[i], i]
< < 사고 과정 > >
Q) 현재 대기목록의 어떤 위치에 있는지 알려주는(location), 내가 인쇄를 요청한 문서가 몇 번 째로 인쇄되는지 Return
직접 손으로 해볼 것.
[2,1,3,2]
A,B,C,D
[1,3,2,2]
B,C,D,A
[3,2,2,1]
C,D,A,B
위의 3가지를 잡고 구현을 하면 쉽게 풀리는 문제
4) 정리 노트
1
2
3
4
5
6
7
8
9
|
list = [[1,3],[2,4],[3,5]]
for i in range(len(list)):
print(list[i])
# 결과 출력
# [1,3]
# [2,4]
# [3,5]
|
cs |
Q) 만약 각 리스트의 맨 앞에 있는 1,2,3을 출력하고 싶다면?
1
2
3
4
5
6
7
8
9
10
11
12
|
list = [
[1,3],
[2,4],
[3,5]
]
for i in range(len(list)):
print(list[i][0])
# 결과 출력
# 1
# 2
# 3
|
cs |
'*Algorithm > Programmers_Level2' 카테고리의 다른 글
[programmers] 프로그래머스 Level2 최대값과 최솟값(파이썬 Python) (0) | 2021.08.29 |
---|---|
[programmers] 프로그래머스 Level2 기능개발(파이썬 Python) (0) | 2021.07.20 |
[programmers] 프로그래머스 Level2 카펫(파이썬 Python) (0) | 2021.05.09 |
[programmers] 프로그래머스 Level2 타겟 넘버 (파이썬 Python) (0) | 2021.04.24 |
[programmers] 프로그래머스 Level2 행렬의 곱셈(파이썬 Python) (0) | 2020.11.19 |
댓글