본문 바로가기
알고리즘/BOJ

[Python] 백준 1700: 멀티탭 스케쥴링

by PIAI 2021. 9. 19.

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)

'알고리즘 > 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

댓글