알고리즘
프로그래머스 스타수열 문제
채마스
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을 하면서 검사한다.