티스토리 뷰

ALGORITHM/백준

[Python]백준 - 보물(1026번)

johnyejin 2020. 2. 23. 23:38

문제출처 - https://www.acmicpc.net/problem/1026

 

1026번: 보물

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다.

www.acmicpc.net

n = int(input())
a = [int(x) for x in input().strip().split()]
b = [int(y) for y in input().strip().split()]
range_a = [-1 for _ in range(n)]
same_b = [-1 for _ in range(n)]
answer = 0

while True:
    if min(a) == 101:
        break

    range_a[b.index(max(b))] = min(a)
    a[a.index(min(a))] = 101
    same_b[b.index(max(b))] = max(b)
    b[b.index(max(b))] = -1

for i in range(n):
    answer += range_a[i] * same_b[i]

print(answer)

설명

  • range_a : 리스트 a를 재배열한 리스트
  • same_b : 리스트 b를 복사한 리스트
  • while문을 돌면서 리스트 b의 max값을 찾아 그 위치에 리스트 a의 최소값을 넣어줌
  • while문 돌때마다 max(b)랑 min(a)값 초기화 시켜주기
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함