[문제]
https://www.acmicpc.net/problem/1296
[풀이]
되게 쉬운 문제라고 생각하고 풀었는데 이름 중에 알파벳 'L'이 들어가지 않은 사람일 경우 어떤 수에 0을 곱해도 0이 돼 예제 입력 소녀시대 멤버들의 이름에는 'L'이 들어가는 사람이 없어 모든 확률이 0이 되는 게 이해가 안 돼서 뭔가 헤맸다..
그냥 확률이 다 0이고 그 0 중 'HYOYEON'의 알파벳 'H'가 알파벳이 가장 앞서 정답으로 출력되는 거였다. 하하
1. count 함수
정의된 문자열에서 해당 문자가 몇 번 존재하는지 카운트하는 함수이다.
예를 들어 w = 'OHMINSIK is sad' 일 때 w.count('i') 의 경우 영문 대/소문자가 구분되어 1이 출력된다.
w.count('sad') 의 출력은 1, w.count('I') 의 출력은 2 이다. 찾고자 하는 문자가 문자열에 없을 경우에는 0이 출력된다.
여자들의 이름을 w_list 에 넣어 정렬 후 민식이의 이름과 각 여자의 이름을 받아 count 함수를 사용해 찾고자 하는 문자열의 수가 몇 개인지 센 후 더했다. 그 후 사랑 계산기를 통해 사랑의 확률 p 를 계산한 후 조건문으로 사랑의 확률이 max_p 보다 클 경우 max_i 를 해당 이름으로 바꿔주었다. 마지막에 w_list[max_i] 를 출력한다.
[코드]
if __name__ == '__main__':
ms = input()
n = int(input())
w_list = sorted([input() for i in range(n)])
max_p = max_i = 0
for i in range(n):
L = ms.count('L') + w_list[i].count('L')
O = ms.count('O') + w_list[i].count('O')
V = ms.count('V') + w_list[i].count('V')
E = ms.count('E') + w_list[i].count('E')
p = ((L + O) * (L + V) * (L + E) * (O + V) * (O + E) * (V + E)) % 100
if p > max_p:
max_p = p
max_i = i
print(w_list[max_i])
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 1157번 단어 공부 (0) | 2021.06.12 |
---|---|
[Python] BOJ/백준 1763번 치킨 쿠폰 (0) | 2021.06.11 |
[Python] BOJ/백준 1371번 가장 많은 글자 (0) | 2021.06.10 |
[Python] BOJ/백준 2864번 5와 6의 차이 (0) | 2021.06.10 |
[Python] BOJ/백준 2863번 이게 분수? (0) | 2021.06.10 |