알고리즘/BOJ
[Python] 백준 1700: 멀티탭 스케쥴링
PIAI
2021. 9. 19. 22:02
https://www.acmicpc.net/problem/1700
1700번: 멀티탭 스케줄링
기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전
www.acmicpc.net
1. 현재 멀티탭에 삽입하고자 하는 플러그가 있으면 continue 한다.
2. 멀티탭 자리가 비어있으면 그대로 꽂는다.
3. 멀티탭의 자리가 꽉 찼을 경우 (이 경우를 찾는 게 너무 어려웠다.) 현재 멀티탭에 있는 정보중 나중에 꽂을 플러그가 멀어지면 멀어질수록 뽑아야 할 우선순위가 높다.
n, k = map(int, input().split())
items = list(map(int, input().split()))
tap = []
ans = 0
for i, item in enumerate(items):
if item in tap:
continue
if len(tap) < n:
tap.append(item)
else:
val = 0
idx = -1
ans += 1
tmp = items[i:]
for x in tap:
if x in tmp:
target = tmp.index(x)
if idx < target:
idx = target
val = x
else:
val = x
break
tap[tap.index(val)] = item
print(ans)