Coding Study/BOJ

[백준]🥉1296 : 팀 이름 정하기

choidawon 2025. 4. 17. 12:43

문제 설명

연두는 프로그래밍 대회에 나갈 팀 이름을 정하려고 한다. 미신을 믿는 연두는 이환이에게 공식을 하나 받아왔고, 이 공식을 이용해 우승할 확률이 가장 높은 팀 이름을 찾으려고 한다.

이환이가 만든 공식은 사용하려면 먼저 다음 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