코딩테스트 파이썬/백준
과일 탕후루
세용용용용
2024. 11. 12. 19:07
나의 풀이
import sys
input = sys.stdin.readline
cd_ct = int(input())
cd_list = list(map(int, input().rstrip().split()))
cd_dict = {}
max_len = 0
left_pt = 0
for i in range(cd_ct):
now_cd = cd_list[i]
if now_cd not in cd_dict:
cd_dict[now_cd] = 1
else:
cd_dict[now_cd] += 1
while len(cd_dict) > 2:
del_cd = cd_list[left_pt]
cd_dict[del_cd] -= 1
if cd_dict[del_cd] == 0:
cd_dict.pop(del_cd)
left_pt+=1
max_len = max(max_len, i-left_pt+1)
print(max_len)
시간 복잡도
for i in range(cd_ct) : 리스트를 순회 하며 최대 길이를 구함 ( 선형 시간 복잡도 )
내부 루프 : (상수 시간 )
해당 알고리즘 시간 복잡도는 : 선형 시간 복잡도 ( O(n) )