https://www.acmicpc.net/problem/1700
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)
'알고리즘 > BOJ' 카테고리의 다른 글
[Python] 백준 1082: 방 번호 (0) | 2021.09.25 |
---|---|
[Python] 백준 1083: 소트 (0) | 2021.09.25 |
[Python] 백준 1916: 최소비용 구하기 (0) | 2021.09.17 |
[Python] 백준 9576: 책 나눠주기 (0) | 2021.09.17 |
[Python] 백준 2638: 치즈 (0) | 2021.09.16 |
댓글