반응형
SMALL
문제 정보
문제명 - 팀 이름 정하기
난이도 - 브론즈 I
문제 번호 - 1296번
문제 링크
https://www.acmicpc.net/problem/1296
1296번: 팀 이름 정하기
연두는 프로그래밍 대회에 나갈 팀 이름을 정하려고 한다. 미신을 믿는 연두는 이환이에게 공식을 하나 받아왔고, 이 공식을 이용해 우승할 확률이 가장 높은 팀 이름을 찾으려고 한다. 이환
www.acmicpc.net
문제
연두는 프로그래밍 대회에 나갈 팀 이름을 정하려고 한다. 미신을 믿는 연두는 이환이에게 공식을 하나 받아왔고, 이 공식을 이용해 우승할 확률이 가장 높은 팀 이름을 찾으려고 한다.
이환이가 만든 공식은 사용하려면 먼저 다음 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보다 작거나 같은 자연수이다.
출력
첫째 줄에 우승할 확률이 가장 높은 팀 이름을 출력한다.
예제 입력/출력
예제 입력 예제 출력 LOVE 3 JACOB FRANK DANO
FRANK
JANE 4 THOMAS MICHAEL INDY LIU
INDY
LILLY 1 PIERRE
PIERRE
MERYLOV 5 JOHN DAVE STEVE JOHN DAVE
DAVE
LLOL 4 BVERON CVERON AVERON DVERON
AVERON
알고리즘 분류
● 구현
● 문자열
● 정렬
소스코드
package Lv1_Bronze;
import java.io.*;
import java.util.Arrays;
/**
* @author HanHoon
* @category 구현, 문자열, 정렬
* https://www.acmicpc.net/problem/1296
*/
public class BOJ_B1_1296_팀_이름_정하기 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder str = new StringBuilder();
String S = br.readLine();
String LOVE = "LOVE";
// N
int N = Integer.parseInt(br.readLine());
int Max = Integer.MIN_VALUE;
String Winner = "";
for (int n = 0; n < N; n++){
String name = br.readLine();
int[] value = new int[4];
for(int i = 0; i < LOVE.length(); i++){
value[i] = S.length() - S.replace(LOVE.charAt(i)+"", "").length();
value[i] += name.length() - name.replace(LOVE.charAt(i)+"", "").length();
}
int score = 1;
for(int i = 0; i < value.length; i++){
for(int j = i+1; j < value.length; j++){
score *= value[i]+value[j];
}
score %= 100;
}
if(Max == score && !Winner.equals("")){
String[] tmp = new String[2];
tmp[0] = Winner;
tmp[1] = name;
Arrays.sort(tmp);
Winner = tmp[0];
}else if(Max < score){
Max = score;
Winner = name;
}
}
str.append(Winner);
System.out.print(str);
br.close();
}
}
BaekJoon List
BaekJoon List
BOJ Start!! ● [BOJ] 백준 회원가입, 시작하는 법 ● [BOJ] 등급(티어) 및 Solved.AC 적용 ● [BOJ/JAVA] 백준 소스코드 제출 시 유의사항(자바) Bronze ● Bronze V - ● Bronze IV - ● Bronze III -..
han-hoon.tistory.com
기회는 준비된 자에게 찾아온다.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/014.gif)
반응형
LIST
'BaekJoon > Bronze' 카테고리의 다른 글
[BOJ/JAVA] 백준 2010 : 플러그 (자바) (0) | 2023.08.10 |
---|---|
[BOJ/JAVA] 백준 1350 : 진짜 공간 (자바) (0) | 2023.08.09 |
[BOJ/JAVA] 백준 1333 : 부재중 전화 (자바) (0) | 2023.08.03 |
[BOJ/JAVA] 백준 1292 : 쉽게 푸는 문제 (자바) (0) | 2023.08.02 |
[BOJ/JAVA] 백준 1268 : 임시 반장 정하기 (자바) (0) | 2023.07.31 |
댓글