본문 바로가기

Programming [Python]/백준 알고리즘 솔루션

#278 백준 파이썬 [16677] 악마 게임

https://www.acmicpc.net/problem/16677

 

PYTHON CODE

m = input()
N = int(input())
word_list = []

for _ in range(N):
    w, g = input().split()
    
    temp = 0 #m문자열 확인용
    other_character = 0 #m문자열 외의 문자 개수 확인
    complete = False #m문자열 완성?
    
    for character in w: #문자 돌면서 하나씩 확인
        if character == m[temp] and not complete: #단어가 완성되면 그 이후 문자는 쓸모 없으므로
            temp += 1 #다음 문자로 넘어감
            if temp == len(m): #단어가 완성되었는가?
                temp -= 1 #리스트 범위 밖으로 넘어가는 것 방지
                complete = True
        else:
            other_character += 1 #다른 수
            
    if complete: #답이 맞다면
        word_list.append([w, int(g)/other_character])

if not word_list:
    print("No Jam")
    
else:
    print(sorted(word_list, key=lambda x: x[1], reverse = True)[0][0]) #숫자 기준으로 정렬, 내림 차순으로 정렬