백준 1296(팀 이름 정하기 ) - Python(파이썬) - 문자열
반응형
문제 이해
예제 1번
- LOVE = 연두의 영어 이름 ( L :1개, O:1개, V:1개, E:1개 )
팀 이름
- JACOB =( L: 0개, O:1개, V:0개, E:0개) => L : 1, O: 2, V:1, E:1 => 우승 확률 : (3 x 2 x 2 x 3 x 3 x 2)%100 =216%100 = 16
- FRANK = ( L:0개, O: 0개, V:0개, E:0개) => L: 1, O:1, V: 1, E:1 => 우승 확률 : (2 x 2 x 2 x 2 x 2 x 2)%100 = 64
- DANO = ( L:0개, O:1개, V:0개, E: 0개 ) => L:1, O:2, V:1, E:1 =>우승 확률 : (3 x 2 x 2 x 3 x 3 x 2)%100 = 16
결론 : FRANK > DANO > JACOB ( 같은 확률일 경우 사전순이므로 )
풀이방법
① 연주의 이름, 팀의 후보 개수, 팀 후보 이름 입력 (단, 팀 후보 입력 받을 시에는 sorted로 사전순으로 입력받도록)
② max_num(우승 확률) , max_name( 우승하는 사람 이름 ) 초기화하지만 우승 확률은 0이상이므로 -1이라고 초기화
③ 팀 후보 이름 for 루프로 돌려 우승확률을 구한 담에 우승확률이 전보다 높을 경우에는 바꿔주는 If문 수행
import sys
#연두의 이름
name=sys.stdin.readline()
#팀의 후보 개수
N = int(sys.stdin.readline())
#팀 후보 이름
team = sorted(sys.stdin.readline().strip() for _ in range(N))
max_num=-1
max_name="0"
#팀 후보 이름 for 루프
for i in team:
L = i.count("L")+name.count("L")
O = i.count("O")+name.count("O")
V = i.count("V")+name.count("V")
E = i.count("E")+name.count("E")
#우승확률
num = ((L+O)*(L+V)*(L+E)*(O+V)*(O+E)*(V+E))%100
#우승확률이 높은 경우 변경
if max_num<num:
max_num = num
max_id = i
print(max_id)
반응형
'[백준] Python,Java로 풀기📖 > 문자열' 카테고리의 다른 글
백준 1543(문서 검색) - Python(파이썬) - 문자열 (0) | 2022.06.23 |
---|---|
백준 9012(괄호) - Python(파이썬) - 문자열 (0) | 2022.05.27 |
백준 1120(문자열) - Python(파이썬) (0) | 2022.05.27 |
백준 1920( 수 찾기 ) - Python(파이썬) (0) | 2022.05.13 |
백준 6198(옥상 정원 꾸미기 ) - Stack , Python (0) | 2022.05.13 |