알고리즘

프로그래머스 스타수열 문제

채마스 2022. 2. 26. 01:06

접근 방식(알고리즘 분류)

  • 알고리즘

내 풀이

from collections import Counter

def solution(a):
    elements = Counter(a)
    answer = -1
    for k in elements.keys():
        if elements[k] <= answer:
            continue

        common_cnt = 0
        idx = 0
        print(k, answer)
        while idx < len(a)-1:
            #현재 검사하고 하는 k가 둘다 없는 경우
            #둘이 같은 경우
            if (a[idx] != k and a[idx+1] != k) or (a[idx] == a[idx+1]):
                idx+=1
                continue
            common_cnt += 1
            idx += 2
        answer = max(common_cnt, answer)

    if answer == -1:
        return 0
    else:
        return answer * 2

print(solution([5,2,3,3,5,3]))

풀이 설명

  • 원소의 갯수를 기준으로 검사한드는 생각을 하지 못해서 풀지 못했다.
  • Count함수를 쓰면 원소마다 갯수를 dict로 반환해 준다.
  • 조건에 만족하면 idx에 +2를 하고 만족하지 못하면 +1을 하면서 검사한다.