[프로그래머스] 🖨 프린터 문제 / python
글 작성자: 택시 운전사
반응형
🖨 프린터 문제 풀어보기
😃 나의 코드
def solution(priorities, location):
pos = []
for i in range(len(priorities)):
if i == location:
pos.append(True)
else: pos.append(False)
answer = 0
count = 0
m = max(priorities)
while True:
if m > priorities[0]:
priorities.append(priorities.pop(0))
pos.append(pos.pop(0))
else:
count += 1
priorities.pop(0)
if pos.pop(0):
return count
m = max(priorities)
스택(stack)/큐(queue) 자료구조에 속하는 문제입니다. location의 위치를 계속 알고 있으면서, 전체에서 가장 큰 원소인 지 아는 것을 하나의 배열로 해결하는 건 매우 어렵습니다. 저는 두 가지 정도의 방법이 생각났습니다. location
의 위치를 값으로 놓고 시행에 따라 location
의 위치를 따라가는 방식과 priorities
와 같은 길이의 location의 위치에 True
를 이외에는 False
의 값을 갖는 pos
라는 list
를 만들어 만약 pos
에서 지워지는 값이 True
라면 그 때의 count
값을 반환하는 방식입니다. 제 코드는 후자의 방식이고 전자의 방식의 코드는 다음과 같습니다.
def solution(p, l):
ans = 0
m = max(p)
while True:
v = p.pop(0)
if m == v:
ans += 1
if l == 0:
break
else:
l -= 1
m = max(p)
else:
p.append(v)
if l == 0:
l = len(p)-1
else:
l -= 1
return ans
Written with StackEdit.
반응형
'Algorithm > Problem Solving' 카테고리의 다른 글
[프로그래머스] 🔢 큰 수 만들기 / python (0) | 2019.05.08 |
---|---|
[프로그래머스] 👨💻 기능 개발 / python (2) | 2019.02.18 |
[프로그래머스] 👷♀️ 타일 장식물 / python (0) | 2019.02.18 |
[프로그래머스] 👨🏫 정수 삼각형 / python (0) | 2019.02.18 |
[프로그래머스] ⚾ 숫자 야구 / python (4) | 2019.02.15 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스] 🔢 큰 수 만들기 / python
[프로그래머스] 🔢 큰 수 만들기 / python
2019.05.08 -
[프로그래머스] 👨💻 기능 개발 / python
[프로그래머스] 👨💻 기능 개발 / python
2019.02.18 -
[프로그래머스] 👷♀️ 타일 장식물 / python
[프로그래머스] 👷♀️ 타일 장식물 / python
2019.02.18 -
[프로그래머스] 👨🏫 정수 삼각형 / python
[프로그래머스] 👨🏫 정수 삼각형 / python
2019.02.18