문제
https://www.acmicpc.net/problem/5576
프로그래밍 콘테스트에 W대학과 K대학이 참가한다. 두 대학 모두 10명씩 참가하며, 점수가 가장 높은 3명의 점수를 합해 대학의 점수로 계산한다.
W대학의 점수, K대학의 점수를 나타내는 20줄의 입력을 받아 각 대학의 점수를 공백으로 구분하여 출력하는 프로그램을 작성한다.
풀이
1. 각 입력을 10열 2행의 배열로 저장한다.
2. 각 행을 정렬한 뒤 마지막 3개 값을 합한 결과를 출력한다.
소스 코드
import sys
s = [[int(sys.stdin.readline()) for _ in range(10)] for _ in range(2)]
print(sum(sorted(s[0])[7:]), sum(sorted(s[1])[7:]))
10열 2행의 배열을 초기화하기 위해 리스트 컴프리헨션을 활용했다.
리스트 컴프리헨션으로 이차배열을 초기화할 때는 한 행을 대괄호로 다시 감싸는 형태로 작성한다.