연속적으로 먹을 수 있는 케이스를 배열로만들고
배열의 값들을 모두 set에 집어넣는다.set에 쿠폰을 사용할 수 있는 음식을 넣는다.
이후 answer와 set의 길이 중 큰 것으로 answer에 할당한다.
N, d, k, c = map(int, input().split(" ")) foods = [int(input()) for _ in range(N)] def solution(N, d, k, c, foods): answer = 0 for i in range(N): case = [] for j in range(k): case.append(foods[(i + j) % N]) set_case = set(case) set_case.add(c) answer = max(answer, len(set_case)) print(answer) solution(N, d, k, c, foods)
처음에 deque를 사용해서 케이스를 구했다.
deque를 바로 set에 넣을 수 없어서 list로 바꿔준 뒤 set에 넣는 식으로 했는데
시간 초과가 났다.자료구조 전환 시 시간 복잡도가 원소의 개수만큼 필요로 하기 때문이다.
라이브러리와 자료구조에 의존하면 안되겠다는 생각을 했다.