백준 - 멀티탭 스케줄링(1700) 본문
딱히 어려운 부분은 없었으나
멀티탭 크기가 넘을 때 빠질 애를 선정하는 방법에 대해서 고민을 좀 했다.
가장 멀리 떨어진 애가 먼저 빠지도록 코드를 짰다.
어케야 효율적으로 짤 수 있을까 고민했으나
그냥 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)
'개발 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 길 찾기 게임 (1) | 2023.12.21 |
---|---|
백준 - 전깃줄 - 2(2568) (0) | 2023.12.12 |
백준 - 가장 긴 증가하는 부분 수열5(14003) (0) | 2023.12.12 |
백준 - 선분 그룹(2162) (0) | 2023.12.12 |
백준 - 롤러코스터(2873) (1) | 2023.12.12 |
Comments