*solved.ac 기준 브론즈 1단계 문제
풀이)
1. 이기는 팀의 이름은 공식 계산값이 가장 커야 한다.
2. 만약 공식 계산 값이 같은 두 개 이상의 팀 이름이 있다면 알파벳 순으로 가장 먼저 오는 팀이 이긴다.
예를 들어 a.compare(b)<0 일 경우 a가 먼저 오고, a.compare(b)>0 일 경우 b가 먼저 오고, a.compare(b)=0 일 경우 a와 b는 같다.
내 코드)
import java.io.*;
public class Main{
public static void main(String[]args) throws IOException{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String yeondu = bf.readLine();
int num = Integer.parseInt(bf.readLine());
int L = 0, O = 0, V = 0, E = 0;
for(int i=0; i<yeondu.length();i++) {
if (yeondu.charAt(i) == 'L')
L++;
if (yeondu.charAt(i) == 'O')
O++;
if (yeondu.charAt(i) == 'V')
V++;
if (yeondu.charAt(i) == 'E')
E++;
}
int score = 0;
String name[] = new String[num];
String winner = "Z";
for(int i=0 ; i<num ; i++) {
name[i] = bf.readLine();
int mL = L, mO = O, mV = V, mE = E;
for(int j=0 ; j<name[i].length() ; j++) {
if (name[i].charAt(j) == 'L')
mL++;
if (name[i].charAt(j) == 'O')
mO++;
if (name[i].charAt(j) == 'V')
mV++;
if (name[i].charAt(j) == 'E')
mE++;
}
int score_name = ((mL+mO) * (mL+mV) * (mL+mE) * (mO+mV) * (mO+mE) * (mV+mE)) % 100;
//System.out.printf("%d %d %d %d: %s의 점수 %d\n", mL, mO, mV, mE, name[i], score_name);
if (score_name>score) {
score = score_name;
winner = name[i];
}
if ((score_name==score)&&(winner.compareTo(name[i])>0)) {
winner = name[i];
}
}
System.out.println(winner);
}
}