반응형
https://www.acmicpc.net/problem/1700
import collections
n, k = map(int, input().split())
order = collections.deque(list(map(int, input().split())))
holes = [0]*n
count = -n
while order:
elem = order.popleft()
if elem not in holes:
# one device should be pulled out
distance = [101]*n
for i in range(len(holes)):
for j in range(len(order)):
# measure distance
if order[j] == holes[i]:
distance[i] = j
break
idx = distance.index(max(distance))
holes[idx] = elem
count += 1
print(max(count, 0))
플러그를 뽑아야 할 상황이 생겼을 때 꽃혀있는 기기 중 가장 나중에 다시 쓰는 기기를 빼주면 된다.
데크를 이용하여 큐를 구현하였다.
처음 count를 -n으로 해주는 이유는 처음 n개가 꽃힐 때는 플러그를 빼지 않아도 되기 때문이다.
댓글