[백준/파이썬] 1296번 팀 이름 정하기 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 1296번 팀 이름 정하기
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
내 이름과 후보 팀 이름들이 주어질 때,
LOVE 글자 개수를 이용한 공식 점수가 가장 큰 팀 이름을 고르는 문제입니다.
동점이면 사전순으로 가장 앞선 이름을 선택합니다.
코드
my=input()
n=int(input())
girls=[[[0,0,0,0],input()] for _ in range(n)]
l=o=v=e=0
for c in my:
if c=='L': l+=1
elif c=='O': o+=1
elif c=='V': v+=1
elif c=='E': e+=1
def calc(my,girl):
l,o,v,e=my[0]+girl[0],my[1]+girl[1],my[2]+girl[2],my[3]+girl[3]
return ((l+o)*(l+v)*(l+e)*(o+v)*(o+e)*(v+e))%100
for girl in girls:
for c in girl[1]:
if c=='L': girl[0][0]+=1
elif c=='O': girl[0][1]+=1
elif c=='V': girl[0][2]+=1
elif c=='E': girl[0][3]+=1
girl[0]=-calc((l,o,v,e),girl[0])
girls.sort()
print(girls[0][1])
설명
내 이름에서 L/O/V/E 개수를 먼저 세고,
후보마다 같은 개수를 세어 점수를 계산합니다.
정렬을 한 번에 처리하려고 점수를 음수로 바꿔 저장한 뒤,
(점수, 이름) 기준으로 정렬해 첫 원소를 출력합니다.
댓글남기기