๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/2531
์ฝ๋ ์ ์ถ ๊ธฐ๋ก (๋ฉ๋ชจ๋ฆฌ ๋ฐ ์๊ฐ)
์ ์ถ ๋ ์ง
@4/23/2021
๋ฉ๋ชจ๋ฆฌ
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)
Python
๋ณต์ฌ