https://www.acmicpc.net/problem/2953
cooks = []
for _ in range(5):
score = list(map(int, input().split()))
cooks.append(sum(score))
print(cooks.index(max(cooks)) + 1, max(cooks))
각 참가자의 점수 총합을 sum() 함수를 이용해 리스트에 추가한 후,
출력 시 max() 함수를 사용해 최대 점수 값, 최대 점수를 가지는 참가자의 인덱스를 찾아 출력하게끔 구현했다.
그런데 여기서 max()를 두 번 호출하게 되면서 시간복잡도가 O(2N)가 된다.
시간복잡도를 줄이기 위해 max()를 두 번 호출하지 않도록 바꿔보았다.
winner = 0
max_score = 0
for i in range(5):
score = sum(map(int, input().split()))
if score > max_score:
max_score = score
winner = i + 1
print(winner, max_score)
입력 받을때마다 최댓값을 갱신하는 방식으로 코드를 짜면, 총 리스트를 한번만 돌게 되므로 시간복잡도가 O(N)이 된다!