모르지 않다는 것은 아는것과 다르다.

알고리즘

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

채마스 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을 하면서 검사한다.

'알고리즘' 카테고리의 다른 글

프로그래머스 이진트리 문제  (0) 2022.02.26
프로그래머스 여행경로 문제  (0) 2022.02.26
프로그래머스 보석쇼핑 문제  (0) 2022.02.26
프로그래머스 배달  (0) 2022.02.26
프로그래머스 hanoi 문제  (0) 2022.02.26