728x90
반응형
우선 입력(2×1짜리 타일과 2×2짜리 타일)을 각각 리스트에 저장하고 내림차순 정렬한다.
N이 짝수일 경우)
2×1짜리 타일 중 제일 예쁜 타일과 2×2짜리 타일 중 제일 예쁜 타일 2개의 합을 비교하고 더 큰 쪽을 사용하고 pop 한다. 그 후 앞의 과정을 끝까지 반복하면 된다.
N이 홀수일 경우)
2×1짜리 타일 하나는 무조건 사용해야 하므로 2×1짜리 타일 중 제일 예쁜 타일을 사용하고 pop 한다. 이후는 N이 짝수인 경우와 같다.
n, a, b = map(int, input().split())
li1 = sorted(list(map(int, input().split())))
li2 = sorted(list(map(int, input().split())))
ans = 0
if n % 2 == 1:
ans += li1[-1]
li1.pop(-1)
n -= 1
for _ in range(0, n, 2):
t1, t2 = 0, 0
if len(li1) >= 2:
t1 = li1[-1] + li1[-2]
if len(li2) >= 1:
t2 = li2[-1]
if t1 > t2:
ans += t1
li1.pop(); li1.pop()
else:
ans += t2
li2.pop()
print(ans)
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 14681번 사분면 고르기(python) (0) | 2020.03.25 |
---|---|
백준 알고리즘 5543번 상근날드(python) (0) | 2020.03.07 |
백준 알고리즘 17487번 타자 연습(python) (0) | 2020.02.17 |
백준 알고리즘 15953번 상금 헌터(python) (0) | 2020.02.17 |
백준 알고리즘 15596번 정수 N개의 합(python) (0) | 2020.02.17 |