알고리즘 공부
프린터
https://programmers.co.kr/learn/courses/30/lessons/42587
우선순위에 따라서 가장 중요도가 큰 순서대로 출력하는데,
원하는 숫자가 몇번째로 출력되는지 계산하는 문제
그냥 씨언어 였다면 queue를 사용해서 풀었겠지만, 파이썬이라 어떻게 구현하는지 잘 몰랐다.
* 그냥 리스트.pop(원하는 인덱스) 하면 걔가 사라진다. *
그래서 첫번째 꺼를 빼내고 돌면서 같은 숫자가 나오면 끝내고, 아니면 계속해서 location을 하나씩 줄여나가며 원하는 답을 찾을 때까지 계산하는 방식으로 구현하였다.
오늘의 느낀 점 ; 파이썬이라고 별거 없다 그냥 생각한대로!!
def solution(priorities, location):
answer = 0
first_priority = max(priorities)
while 1:
first_number = priorities.pop(0)
if first_number == first_priority:
answer+=1
if location == 0:
break
else:
location -=1
first_priority = max(priorities)
else:
priorities.append(first_number)
if location == 0:
location = len(priorities)-1
else:
location -=1
return answer
소요시간 ; 1시간