본문 바로가기

백준 - 멀티탭 스케줄링(1700) 본문

알고리즘

백준 - 멀티탭 스케줄링(1700)

Seongjun_You 2023. 12. 12. 20:42

딱히 어려운 부분은 없었으나

멀티탭 크기가 넘을 때 빠질 애를 선정하는 방법에 대해서 고민을 좀 했다.

가장 멀리 떨어진 애가 먼저 빠지도록 코드를 짰다.

어케야 효율적으로 짤 수 있을까 고민했으나

그냥 index를 사용해서 판별하는 게 내가 생각할 수 있는 최선이었다.

 

import heapq
n, k = map(int, input().split())
data = list(map(int, input().split()))
list_data = []
answer = 0
for i in range(k):
    if data[i] in list_data:
        continue

    if len(list_data) < n:
        list_data.append(data[i])
        continue
    temp_list = data[i:]
    idx = float('-inf')
    for x in list_data:
        if x in temp_list:
            t = temp_list.index(x)
            if idx <= t:
                idx = t
                val = x
        else:
            val = x
            break
    answer += 1
    list_data.remove(val)
    list_data.append(data[i])

print(answer)
Comments