[백준/파이썬] 2966번 찍기 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 2966번 찍기
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
세 사람이 반복되는 패턴으로 답을 찍을 때, 정답과 비교해 최고 점수와 해당 사람 이름을 출력하는 문제입니다.
코드
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')
설명
각 사람의 패턴을 인덱스 나머지 연산으로 반복 적용하며 점수를 누적하고, 최대 점수와 같은 사람 이름을 모두 출력하면 됩니다.
댓글남기기