알고리즘 공부

less than 1 minute read

프린터
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시간