내맘대로IT/Python

백준 파이썬 1700 멀티탭 스케줄링

맛집여행 2023. 12. 12. 20:23
728x90
300x250

N,K =map(int,input().split())
S = list(map(int,input().split()))

code = []
ans =0

for i in range(K):
    if S[i] in code: #코드에 동일한기기가 이미 꽂혀있음
        continue

    if len(code)<N: #코드 자리남아있음
        code.append(S[i])
        continue

    pri = []

    for c in code: #이미 코드가 꽂혀있음
        if c in S[i:]:#다음에 이용 가능
            pri.append(S[i:].index(c))
            print(S[i:].index(c))
        else:
            pri.append(101)
    target = pri.index(max(pri))
    code.remove(code[target])
    code.append(S[i])
    ans+=1
print(ans)

1.N,K는 멀티탭수와 멀티탭에 꽂을 디바이스 수

2.S는 디바이스 리스트

3.디바이스 수 만큼 for문

4.코드에 동일 기기 있을 경우 continue

5.코드에 새로운 디바이스를 꽂을 자리가 있으면 code 리스트에 추가 후 continue

6.code [] 에 이미 코드가 꽂혀있는 경우

-만약 2디바이스가 있었고 뒤에 또 2디바이스 쓸 경우가 있으면, S[i:]기준으로 index값 확인

-없으면 k가 100까지였으므로 101을 추가함

-target에는 다시 안써도 될 디바이스를 제거

-기존에 없던 디바이스를 새로 추가

7.ans에 출력 값 저장

728x90

'내맘대로IT > Python' 카테고리의 다른 글

백준 14719 빗물  (1) 2023.12.06
백준 파이썬 2504 괄호의 값  (0) 2023.12.01
백준 파이썬 14888 연산자끼워넣기  (0) 2023.11.29
백준 파이썬1978 소수찾기  (0) 2023.11.28
백준 파이썬 2581 소수  (1) 2023.11.27