programmers.co.kr/learn/courses/30/lessons/42587
<Steps>
-
입력받은 리스트 priorities에서 첫 번째 element가 가장 큰 값인지 확인합니다.
- 가장 큰 값이라면 출력(pop)하고 출력 횟수(answer) 증가시킵니다.
-
처음 지정한 location이 0이라면, 출력 횟수를 return 합니다.
처음 지정한 location이 음수라면, 남은 priorities의 길이만큼 더합니다.
location 1 빼서 위치 이동
priorities에서 첫 번째 element가 가장 큰 값이 아니라면, -
맨 앞 element를 빼서 맨 뒤로 이동시킵니다.
-
하나의 element를 뺐으므로 location도 -1 합니다.
만약, location이 음수가 된다면, priorities의 길이만큼 더해줍니다.
''' 반복 '''
최종 return answer 출력합니다.
[최종 코드]
def solution(priorities, location):
answer = 0
while True:
if priorities[0] == max(priorities):
priorities.pop(0)
answer +=1
if location == 0:
return answer
elif location < 0:
location += len(priorities)
location -=1
else:
priorities.append(priorities.pop(0))
location -= 1
if location < 0:
location += len(priorities)
return answer
print(solution([2, 1, 3, 2], 0))
print(solution([2, 1, 3, 2,6,5,2,2,7,9], 7))
[out]
3
8
'2021 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] Lv.2 - H-Index (Python) (0) | 2021.01.01 |
---|---|
[프로그래머스] Lv.2 - 다리를 지나는 트럭 (Python) (0) | 2021.01.01 |
[프로그래머스] Lv.2 - 위장 (Python) (0) | 2020.12.29 |
[프로그래머스] Lv.1 - 실패율 (Python) (0) | 2020.12.29 |
[프로그래머스] Lv.1 - 예산 (Python) (0) | 2020.12.21 |
댓글