import sys
n,k=map(int,sys.stdin.readline().split())
x=list(map(int,sys.stdin.readline().split()))
multi =[0]*n
ans=0
for i in range(k):
true=0
for j in range(n):
if multi[j]==0 or multi[j]==x[i]:
true=1
multi[j]=x[i]
break
if true:
continue
else:
temp = x[i+1:]
late = 0
idx = 0
for j in range(n):
if multi[j] in temp:
if late <= temp.index(multi[j]):
late = temp.index(multi[j])
idx = j
else:
idx = j
break
multi[idx] = x[i]
ans+=1
print(ans)
예외를 찾다가 시간을 많이 보냈다. 처음 시작할 때 x [:n]만큼 멀티탭에 꽂아놨는데 케이스가 1 1 2 인경우 1을 리턴한다. 같은 스케줄은 한 곳에 꽂혀있어야 하기 때문이다. 자리가 비었거나 같은 것인 경우 넘어가고 아닌 경우 다시 사용될 것들 중 마지막을 찾아 그곳에 꽂아 준다.
'Baekjoon' 카테고리의 다른 글
[BOJ / python] #1202 보석 도둑 그리디 (0) | 2021.03.27 |
---|---|
[BOJ / python] #1541 수리공 항승 그리디 (0) | 2021.03.27 |
[BOJ / python] #1339 단어 수학 그리디 (0) | 2021.03.27 |
[BOJ / python] #2217 로프 그리디 (0) | 2021.03.23 |
[BOJ / python] #1541 잃어버린 괄호 그리디 (0) | 2021.03.23 |
댓글