연두는 프로그래밍 대회에 나갈 팀 이름을 정하려고 한다. 미신을 믿는 연두는 이환이에게 공식을 하나 받아왔고, 이 공식을 이용해 우승할 확률이 가장 높은 팀 이름을 찾으려고 한다.
이환이가 만든 공식은 사용하려면 먼저 다음 4가지 변수의 값을 계산해야 한다.
- L = 연두의 이름과 팀 이름에서 등장하는 L의 개수
- O = 연두의 이름과 팀 이름에서 등장하는 O의 개수
- V = 연두의 이름과 팀 이름에서 등장하는 V의 개수
- E = 연두의 이름과 팀 이름에서 등장하는 E의 개수
그 다음, 위에서 구한 변수를 다음 식에 입력하면 팀 이름의 우승할 확률을 구할 수 있다.
((L+O) × (L+V) × (L+E) × (O+V) × (O+E) × (V+E)) mod 100
연두의 영어 이름과 팀 이름 후보 N개가 주어졌을 때, 우승할 확률이 가장 높은 팀 이름을 구해보자. 확률이 가장 높은 팀이 여러가지인 경우 사전 순으로 가장 앞서는 팀 이름이 우승할 확률이 가장 높은 것이다.
첫째 줄에 연두의 영어 이름이 주어진다. 둘째 줄에는 팀 이름 후보의 개수 N이 주어진다. 셋째 줄부터 N개의 줄에 팀 이름이 한 줄에 하나씩 주어진다.
연두의 영어 이름과 팀 이름은 길이는 1보다 크거나 같고, 20보다 작거나 같으며, 알파벳 대문자로만 이루어져 있다. N은 50보다 작거나 같은 자연수이다.
출력
첫째 줄에 우승할 확률이 가장 높은 팀 이름을 출력한다.
yeondoo = ipnut()
N = int(input())
name_list = []
max_p = 0
max_name = ''
for _ in range(N):
name_list.append(input())
#리스트를 알파벳 순으로
name_list = sorted(name_list)
for name in name_list:
teamname = name+yeondoo
l = teamname.coount("L")
o = teamname.coount("L")
v = teamname.coount("L")
e = teamname.coount("L")
ans = ((l+o)*(l+v)*(l+e)*(o+v)*(o+e)*(v+e))%100
if ans == 0:
pass
elif ans > max_p:
max_p = ans
max_name = name
if max_p == 0:
print(name_list[0])
else:
print(max_name)
🧡 문제 설명
- 연두라는 사람이 있고, 팀에 들어가려고 합니다.
- 몇 개의 팀 이름 후보가 주어집니다.
- 연두는 자신의 이름과 팀 이름을 이어 붙인 문자열을 기준으로, 다음과 같은 방법으로 "궁합 점수"를 계산합니다.
궁합 테스트 문제 같지만, 실제로는 문자열 조작과 조건 비교 능력을 묻는 문제입니다 😊
'Coding Study > BOJ' 카테고리의 다른 글
| [백준]🥈1064 : 평행사변형 (0) | 2025.04.17 |
|---|---|
| [백준]🥈1417 : 국회의원 선거 (0) | 2025.04.17 |
| [백준]🥈1384 : 메시지 (0) | 2025.04.16 |
| [백준]🥇1068 : 트리 (0) | 2025.04.16 |
| [백준]🥈13305 : 주유소 (0) | 2025.04.16 |