[백준/파이썬] 2966번 찍기 풀이

업데이트:



문제 정보


풀이

문제

세 사람이 반복되는 패턴으로 답을 찍을 때, 정답과 비교해 최고 점수와 해당 사람 이름을 출력하는 문제입니다.

코드

n = int(input())
scores = {'Adrian':[0,'ABC'], 'Bruno': [0,'BABC'], 'Goran': [0,'CCAABB']}
s = input()

for i in range(n):
    for score in scores.values():
        if score[1][i%len(score[1])] == s[i]: score[0]+=1

m=max(scores.values())[0]
print(m)
print(*map(lambda x: x[0],filter(lambda x: x[1][0]>=m, scores.items())),sep='\n')

설명

각 사람의 패턴을 인덱스 나머지 연산으로 반복 적용하며 점수를 누적하고, 최대 점수와 같은 사람 이름을 모두 출력하면 됩니다.



댓글남기기