jyamethyst21 님의 블로그

백준 11948번- '과목선택' (PYTHON 풀이) 본문

CODING 💻

백준 11948번- '과목선택' (PYTHON 풀이)

jyamethyst21 2026. 2. 6. 01:13

문제:

 

총 6과목의 시험 점수를 입력받는데 그 중 처음 네과목 중 세과목 선택, 마지막 두과목 중 한과목만 선택해서 전부 더해서 출력하면 된다. 이때 선택 기준은 시험의 합이 가장 큰 것을 기준으로 본다.

 

풀이:

first_sub = []
second_sub = []
for i in range(4):
    score = int(input())
    first_sub.append(score)

for j in range(2):
    score2 = int(input())
    second_sub.append(score2)

result1 = sorted(first_sub, reverse=True)
result2 = sorted(second_sub, reverse=True)

sum = result1[0]+result1[1]+result1[2]+result2[0]
print(sum)

필자는 처음 네과목, 나머지 두과목을 따로 분리해서 계산하였다. min, sum 함수를 활용하거나 sorted를 하나만 써서 인덱싱으로 구분하는 방법 등 여러 가지가 더 효율적인 방법이 있을 것이라고 생각이 들긴하는데 처음 들었던 아이디어 그대로 구현하였다.

입력 순서대로 네번째 과목까지 first_sub 리스트에 추가하고, 마지막 두과목의 점수는 second_sub에 추가하였다.

이후 내림차순 정렬을 진행하였다. 정렬을 한 이유는 가장 큰 값이 나오도록 더하여야 하기 때문이다.

그리고 네과목을 담은 fitst_sub에서 2번째 인덱스까지가 점수가 큰 순서대로 세과목이기 때문에 더하고, 두과목은 다음 second_sub에서는 0번째 인덱스에 해당하는 값이 가장 큰 점수이므로 이를 전부 더해 출력하면 된다.