알고리즘

[백준, 파이썬, 1296번] 팀 이름 정하기

hminor 2024. 1. 2. 12:31

풀이

  • 처음 해당 문제를 해결하고자 했을 때는 
  • 딕셔너리를 사용해서 해결하고자 했지만 수치 변경 이외엔 너무 불편하여
  • 배열을 사용하여 해결하고자 했으며
  • 각 팀 이름에 대한 비율을 새로 계산해야 했기에
  • deepcopy를 사용하여 해결.

 

import sys
import copy
input = sys.stdin.readline

def find(name, dic):
    for i in name:
        if i == 'L': dic[0]+=1
        elif i == 'O': dic[1]+=1
        elif i == 'V': dic[2] += 1
        elif i == 'E': dic[3] += 1
    return

yeon = input().rstrip('\n')
dic = [0, 0, 0, 0]
find(yeon,dic)

n = int(input())
name_li = sorted([input().rstrip('\n') for _ in range(n)])
result,idx = 0,0
for x in range(n):
    new_dic = copy.deepcopy(dic)
    find(name_li[x],new_dic)
    gob = 1
    for i in range(3):
        for j in range(i+1,4):
            gob *= (new_dic[i]+new_dic[j])
    if gob%100 > result:
        result = gob%100
        idx = x
print(name_li[idx])