πŸ‹ 문제링크


https://www.acmicpc.net/problem/2531

🍎 μ½”λ“œ 제좜 기둝 (λ©”λͺ¨λ¦¬ 및 μ‹œκ°„)


제좜 λ‚ μ§œ

2021/04/23

λ©”λͺ¨λ¦¬

166384 KB

μ‹œκ°„

4216 ms

πŸ₯ λ©”λͺ¨


πŸ“ λ¬Έμ œν’€μ΄


set λ°°μ—΄

β†’ for i in range(N):

 i λΆ€ν„° μ—°μ†μœΌλ‘œ k 개의 초λ°₯의 번호λ₯Ό μ €μž₯ν•˜λŠ” ν•¨μˆ˜

arr λ°°μ—΄

β†’ d 개의 0으둜 μ΄ˆκΈ°ν™” λ˜μ–΄μžˆλŠ” λ°°μ—΄

 arr[set에 λ“€μ–΄μžˆλŠ” ν•¨μˆ˜μ˜ 번호] = 1  

β†’ arr.count(1) : μ„œλ‘œ λ‹€λ₯Έ 초λ°₯의 개수

πŸ‰ Code


N, d, k, c = map(int, input().split())
sushi = []
for _ in range(N):
    sushi.append(int(input()))

MAX = 0
for i in range(N):
    arr = [0 for _ in range(d+1)]
    kind = 0
    set = []
    for j in range(k):
        arr[sushi[(i+j) % N]] = 1
        set.append(sushi[(i+j) % N])
    kind += arr.count(1)

		# 쿠폰번호의 초λ°₯이 set에 ν¬ν•¨λ˜μ–΄μžˆμ§€ μ•ŠμœΌλ©΄
    if c not in set: 
        kind += 1

    MAX = max(MAX, kind)

print(MAX)