Skip to content

Commit f14f883

Browse files
committed
[BOJ] #1700. 멀티탭 스케줄링/ 골드1 / 80분 / 힌트,성공
1 parent 444f7e3 commit f14f883

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import sys
2+
3+
input = sys.stdin.readline
4+
5+
N, K = map(int, input().split()) # N: 멀티탭 구멍 개수, K: 전기용품 총 사용횟수
6+
items = list(map(int, input().split())) # 전기용품 사용 순서
7+
multitap = [] # 현재 멀티탭
8+
cnt = 0 # 플러그를 뽑는 횟수
9+
10+
for i in range(K):
11+
# 이미 꽂혀있는 경우
12+
if items[i] in multitap:
13+
continue
14+
15+
# 멀티탭에 자리가 있는 경우
16+
if len(multitap) < N:
17+
multitap.append(items[i])
18+
else:
19+
# 교체할 전기용품 찾기
20+
remove_device = 0
21+
most_late_device = 0
22+
for d in multitap:
23+
if d not in items[i:]: # 앞으로 사용되지 않는다면 바로 제거
24+
remove_device = d
25+
break
26+
27+
else: # 모든 기기가 다 사용되어야 한다면, 가장 나중에 사용되는 기기를 제거
28+
later_device = items[i:].index(d)
29+
if later_device > most_late_device:
30+
most_late_device = later_device
31+
remove_device = d
32+
33+
# 플러그 교체
34+
multitap.remove(remove_device)
35+
multitap.append(items[i])
36+
cnt += 1
37+
38+
# 결과 출력
39+
print(cnt)

0 commit comments

Comments
 (0)