출처
풀이
from collections import Counter
def solution(a):
stats = Counter(a)
# 스타수열에서의 두개단위 짝의 갯수
answer = 0
for common in stats:
# 만약 문자의 등장횟수가 현재 구한 최댓값보다 작거나 같다면 검사할필요가 없다.
# 왜냐하면 문자의 등장횟수가 곧 스타수열의 최대길이를 결정하기 때문이다.
if answer>=stats[common]:
continue
i, count = 0, 0
# 맨 앞에서부터 차례로 검사하는것이 최적의 답을 구하게 된다.
while i < len(a)-1:
if (a[i]==a[i+1]) or (a[i]!=common and a[i+1]!=common):
i += 1
continue
i += 2
count += 1
# 가장 긴 스타수열을 찾는다.
answer = max(count, answer)
# 스타수열은 2개의 원소 가 짝을 이룬 여러개의 집합으로 구성되어있다.
# 따라서 2를 곱해 반환한다.
return answer*2
Leave a comment