less than 1 minute read

출처

풀이

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