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
반응형

+ Recent posts