본문 바로가기

Algorithm/[BOJ] - Python

[백준] 11557 : Yangjojang of The Year python

t = int(input())

for i in range(t):
    n = int(input())
    school = []
    drink = []
    for j in range(n):
        line = input()
        split = line.split(' ')
        school.append(split[0])
        drink.append(int(split[1]))
    idx = drink.index(max(drink))
    print(school[idx])

내가 직접 푼 코드인데 암만봐도 비효율적인 것 같아 다른 사람들의 풀이를 참고해보았다

 

# 테스트케이스 개수
T = int(input())
# 최대 술값
max = 0
# 학교이름
name = ""

for i in range(T):
	# 학교의 개수 입력받음
    N = int(input())
    
    # 학교의 개수만큼 학교이름 술값을 입력받음
    for j in range(N):
    	# 입력받은 학교이름과 술값을 S, L에 저장
        S, L = input().split(' ')
        # 정수로 변환한 술값을 비교해 최댓값이라면
        if max < int(L):
        	# 최댓값을 업데이트하고 학교 이름을 저장함
            max = int(L)
            name = S
    # 학교이름 출력
    print(name)

S, L = input().split(' ')으로 입력받은 문장을 공백을 기준으로 쪼개고 그 조각들을 바로 저장하고

술값 비교도 바로 해버리니 list를 사용할 필요가 사라졌다