728x90
반응형
BaekJoon 백준 1296 데이트 문제는 좋아하는 여자 N명 중에 한 명과 함께 데이트하러 나가고 싶어 한다. 사랑 계산기는 두 사람의 이름을 이용해서 두 사람이 성공할 확률을 계산해 준다. 성공할 확률이 가장 높은 여자의 이름을 구하는 문제이다. 난이도는 Bronze 1이다.
BaekJoon 1296 데이트 문제 정보
출처
- https://www.acmicpc.net/problem/1296
알고리즘 분류
- 문자열 string, 구현
난이도
- 브론즈 1 / Bronze 1
데이트 문제 요약
- 오민식은 자기가 좋아하는 여자 N명 중에 한 명과 함께 데이트하러 나가고 싶어 한다.
- 하지만 N명 모두를 사랑하는 오민식에게는 한 명을 선택하고 나머지 여자를 버리는 것은 슬픈 결정이기 때문에 누구를 선택해야 할지 고민에 빠졌다.
- 마침 오민식은 사랑 계산기를 얻었다. 사랑 계산기는 두 사람의 이름을 이용해서 두 사람이 성공할 확률을 계산해 준다. 사랑 계산기는 다음과 같이 작동한다.
- L = 두 사람 이름에서 등장하는 L의 개수
- O = 두 사람 이름에서 등장하는 O의 개수
- V = 두 사람 이름에서 등장하는 V의 개수
- E = 두 사람 이름에서 등장하는 E의 개수
- 위의 개수를 모두 계산한 후에 확률 계산은 다음과 같이 한다.
- ((L+O)*(L+V)*(L+E)*(O+V)*(O+E)*(V+E)) mod 100
- 오민식의 영어 이름과 나머지 여자들의 이름이 주어졌을 때, 오민식과 성공할 확률이 가장 높은 여자의 이름을 출력하는 프로그램을 작성하시오. 여러 명일 때에는 알파벳으로 가장 앞서는 이름을 출력하면 된다.
- N은 50보다 작거나 같고, 모든 이름은 알파벳 대문자로만 구성되어 있고 모두 길어야 20글자이다.
문제 풀이 과정
- 여자들의 이름을 입력받고, 알파벳 빠른 순으로 오름차순 정렬한다.
- 모든 여자들의 이름을 돌아가면서 L, O, V, E를 모두 계산한다.
- 확률을 계산하여 저장한다.
- 확률이 가장 높은 여자의 이름 중 알파벳으로 가장 앞서는 이름을 출력한다.
코드 및 설명
manName = input()
womenName = []
percent = []
for i in range(int(input())):
womenName.append(input())
womenName.sort()
for w in womenName:
L = w.count('L') + manName.count('L')
O = w.count('O') + manName.count('O')
V = w.count('V') + manName.count('V')
E = w.count('E') + manName.count('E')
percent.append(((L + O) * (L + V) * (L + E) * (O + V) * (O + E) * (V + E)) % 100)
print(womenName)
print(percent)
print(womenName[percent.index(max(percent))])
BaekJoon 백준 1296 데이트 문제를 파이썬 python으로 풀어보았다. 난이도는 Bronze 브론즈 1이다.
728x90
반응형
'Algorithm Problem Solving > BaekJoon' 카테고리의 다른 글
[BaekJoon] 백준 3041 N-퍼즐 (Python / 파이썬) (0) | 2021.08.27 |
---|---|
[BaekJoon] 백준 9047 6174 (Python / 파이썬) (0) | 2021.08.27 |
[BaekJoon] 백준 11070 피타고라스 기댓값 (Python / 파이썬) (1) | 2021.08.27 |
[BaekJoon] 백준 14647 준오는 조류혐오야!! (Python / 파이썬) (0) | 2021.08.26 |
[BaekJoon] 백준 17294 귀여운 수~ε٩(๑> ₃ <)۶з (Python / 파이썬) (0) | 2021.08.26 |
댓글