🐸 문제 정보
🤖 알고리즘
슬라이딩 윈도우
⏱️ 풀이 시간
30m +
(체크를 못했다...)
📝 풀이
조금 신기한..? 이상한..? 문제였다.
슬라이딩 윈도우로 푸는데, 조건문으로 검사하지 않고 모든 경우에서 적용할 수 있도록 코드를 작성하면 시간초과가 발생했다.
틀린 코드는 아래에서 볼 수 있다.
더보기
import sys
input = sys.stdin.readline
n, d, k, c = map(int, input().rstrip().split())
table = [int(input()) for _ in range(n)]
res = 0
for i in range(n):
res = max(res, len(set(table[i:i+k] + table[:(i+k) % n] + [c])))
print(res)
사실 이렇게 풀면 같은 로직임에도 코드가 훨씬 간결해지는데...
이상하게도 모든 조건을 다 나누어 해결해야 올바르게 통과할 수 있었다.
🧑💻 나의 답
# pypy3
import sys
input = sys.stdin.readline
n, d, k, c = map(int, input().rstrip().split())
table = [int(input()) for _ in range(n)]
res = 0
for i in range(n):
if i + k > n:
tmp = len(set(table[i:n] + table[:(i+k) % n] + [c]))
else:
tmp = len(set(table[i:i+k] + [c]))
if res < tmp:
res = tmp
print(res)
'PS > 문제풀이' 카테고리의 다른 글
백준 2631 줄세우기 Python (1) | 2024.01.22 |
---|---|
백준 5972 택배 배송 Python (1) | 2024.01.22 |
백준 3758 KCPC Python (1) | 2024.01.22 |
백준 1253 좋다 Python (1) | 2024.01.21 |
백준 20922 겹치는 건 싫어 Python (1) | 2024.01.21 |