https://www.acmicpc.net/problem/1296


문제

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

이환이가 만든 공식은 사용하려면 먼저 다음 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보다 작거나 같은 자연수이다.


출력

첫째 줄에 우승할 확률이 가장 높은 팀 이름을 출력한다.


예제 입력 1

LOVE
3
JACOB
FRANK
DANO


예제 출력 1

FRANK


예제 입력 2

JANE
4
THOMAS
MICHAEL
INDY
LIU


예제 출력 2

JANE
4
THOMAS
MICHAEL
INDY
LIU


코드


👩‍💻 풀이과정

  • 연두의 영어 이름과 팀 이름에 LOVE의 철자가 몇개씩 들어있는지 파악해서 식을 연산해야 함
    • 연두의 영어 이름과 팀 이름에 각각 L, O, V, E가 몇개씩 들어있는지 배열에 저장
    • 0 인덱스부터 3 인덱스까지 순차적으로 연산 방식을 도입해 연산
    • 결과값을 100으로 나눈 나머지를 구해서 최댓값이 나온 팀 이름 출력


👀 주의할점

  • 특정 문자 개수
    • 해당 문자를 ““으로 replace
    • replace 하기 전 문자열 길이에서 replace 한 후 문자열 길이를 빼주면 개수 나옴
  • 최댓값인 팀이 여러 팀일 때
    • 팀 이름들을 배열에 넣고 정렬하여 첫 번째 팀명 출력