문제
https://programmers.co.kr/learn/courses/30/lessons/42587
나의 코드 (런타임 에러 3개)
from collections import deque
def solution(priorities, location):
answer=0
priorities = deque(priorities)
point_list = deque(range(len(priorities)))
while priorities:
tmp = priorities.popleft()
if tmp < max(priorities):
point_list.append(point_list.popleft())
priorities.append(tmp)
else:
answer+=1
point = point_list.popleft()
if point ==location:
return answer
문제 그대로 구현하였더니 테스트 3개가 런타임 에러로 통과되지 못하였다.
계속 고민해도 해답을 얻지 못하였는데 나랑 거의 똑같은 다른사람 코드를 보고 문제를 해결하였다.
from collections import deque
def solution(priorities, location):
answer=0
priorities = deque(priorities)
point_list = deque(range(len(priorities)))
while priorities:
tmp = priorities.popleft()
if priorities:
if tmp < max(priorities):
point_list.append(point_list.popleft())
priorities.append(tmp)
else:
answer+=1
point = point_list.popleft()
if point ==location:
return answer
return answer+1
기존 코드는 우선순위가 내림차순으로 되어있을 경우 처리를 못했는게 아닐까 추측된다.
'공부-코딩테스트 > 코테풀이 - 자바, 파이썬' 카테고리의 다른 글
튜플 (코딩테스트, 프로그래머스) (0) | 2022.01.25 |
---|---|
문자열 압축 (코딩테스트, 프로그래머스) (0) | 2022.01.24 |
메뉴 리뉴얼 (코딩테스트, 프로그래머스) (0) | 2022.01.19 |
타겟 넘버 (코딩테스트, 프로그래머스) (0) | 2022.01.19 |
코딩테스트 문제 : 거리두기 확인하기 (프로그래머스) (0) | 2022.01.13 |
댓글