알고리즘(백준, 프로그래머스)/[백준] BronzeⅣ

[백준 11948/ 파이썬 / BronzeⅣ / sloved.ac] 과목선택

마법사 코딩공주 2022. 12. 1. 10:07
728x90
반응형

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

 

11948번: 과목선택

JOI는 물리, 화학, 생물, 지구과학, 역사, 지리 총 6 과목의 시험을 봤다. 각 시험의 만점은 100점이다. JOI는 물리, 화학, 생물, 지구과학 4과목 중에서 3 과목을 선택하고 역사, 지리 2 과목 중에

www.acmicpc.net

문제

JOI는 물리, 화학, 생물, 지구과학, 역사, 지리 총 6 과목의 시험을 봤다. 각 시험의 만점은 100점이다.

JOI는 물리, 화학, 생물, 지구과학 4과목 중에서 3 과목을 선택하고 역사, 지리 2 과목 중에서 한 과목을 선택한다.

시험 점수의 합이 가장 높게 나오도록 과목을 선택할 때, JOI가 선택한 과목의 시험 점수의 합을 구하시오.

입력

입력은 6행으로 되어있으며, 각 행에 1개의 정수가 주어진다.

1행에는 JOI의 물리 시험의 점수 A가 주어진다.

2행에는 JOI의 화학 시험의 점수 B가 주어진다.

3행에는 JOI의 생물 시험의 점수 C가 주어진다.

4행에는 JOI의 지구과학의 시험 점수 D가 주어진다.

5행에는 JOI의 역사 시험의 점수 E가 주어진다.

6행에는 JOI의 지리 시험의 점수 F가 주어진다.

입력한 정수 A, B, C, D, E, F는 모두 0이상 100이하이다.

출력

JOI가 선택한 과목의 총 점수를 1행에 출력하시오.

예제 입력 1

100
34
76
42
10
0

예제 출력 1

228

풀이:

lst1 = []
lst2 = []
for i in range(6):
    n = int(input())
    if i < 4:
        lst1.append(n)
    else:
        lst2.append(n)

minlst1 = min(lst1)
lst1.remove(minlst1)
minlst2 = min(lst2)
lst2.remove(minlst2)

print(sum(lst1) + sum(lst2))

조금 더 간결하게 풀이

lst = []
for _ in range(6):
	lst.append(int(input()))

lst1 = sorted(lst[:4])
lst2 = lst[4:]
print(sum(lst1[1:]) + max(lst2))
728x90
반응형