728x90

나의 풀이
def solution(priorities, location):
count = 0
p_sort = priorities.copy()
p_sort.sort(reverse=True)
while priorities:
if priorities[0] < p_sort[0]:
priorities.append(priorities.pop(0))
if location == 0:
location = len(priorities) - 1
else:
location -= 1
elif location == 0:
count += 1
break
else:
priorities.pop(0)
p_sort.pop(0)
location -= 1
count += 1
return count
enumerate와 any를 사용한 풀이
def solution(priorities, location):
queue = [(i,p) for i,p in enumerate(priorities)]
answer = 0
while True:
cur = queue.pop(0)
if any(cur[1] < q[1] for q in queue):
queue.append(cur)
else:
answer += 1
if cur[0] == location:
return answer
나와 유사하지만 Max를 사용한 풀이
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
-
반응형
'Coding Test > Programmers' 카테고리의 다른 글
| [프로그래머스/MySQL] 최솟값 구하기 (0) | 2022.05.31 |
|---|---|
| [프로그래머스/MySQL] 최댓값 구하기 (0) | 2022.05.31 |
| [프로그래머스/파이썬] 기능개발 (0) | 2022.05.31 |
| [프로그래머스/파이썬] 베스트앨범 (0) | 2022.05.24 |
| [프로그래머스/파이썬] 위장 (0) | 2022.05.24 |