https://programmers.co.kr/learn/courses/30/lessons/70130#
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์คํ ์์ด
programmers.co.kr
์ต๊ทผ์ ์ผ์ ์์ํด์(์ฌ์ค์ ๊ท์ฐฎ์์.. ์ผ์๋..) ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ์ง ๋ชปํ์ต๋๋ค.
์ค๋์ ์ค์ฐํด๋ผ ํน ์ฌ๊ณ ๋ฐค์ ์๊ธฐ ์ ์, ์ด๋๋ก ์๋ฉด ์๋ ๊ฒ ๊ฐ๋ค..๋ ์๊ฐ์ ํ ๋ฌธ์ ํ์์ต๋๋ค.
๋ด์ผ์ ๊ผญ ๋ ๊ฐ ํ์ด์ผ์ง..
ํ์ด ๋ฐฉ๋ฒ์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์๊ฐํฉ๋๋ค.
๋น์ฐํ ์ต๋น๊ฐ๋ถํฐ ๊ณ์ฐํ๋ฉด ์ข์ต๋๋ค!
๊ทธ๋ฆฌ๊ณ , ๋๋ฌํ ์ ์๋ ์ผ์ด์ค๋ ๋ฐฐ์ ํ๋ฉด ์๊ฐ ๋ด์ ํ ์ ์์ต๋๋ค. :)
from collections import Counter
def solution(a):
answer = 0
# ์ต๋น๊ฐ
common = Counter(a).most_common()
n = len(a)
for (fval, count) in common:
ret = 0
idx = 0
# ๋๋ฌํ ์ ์๋ ์ผ์ด์ค. ์ข
๋ฃ.
if count * 2 < answer:
break
while idx < n:
if a[idx] != fval:
if idx + 1 < n and a[idx+1] == fval:
ret += 2
idx += 2
else:
idx += 1
else:
if idx + 1 < n:
if a[idx+1] != fval:
ret += 2
idx += 2
else:
idx += 1
else:
idx += 1
answer = max(answer, ret)
return answer