[BOJ] 1026: 보물

이슬비·2022년 4월 27일
0

Algorithm

목록 보기
26/110
post-thumbnail

코테 리뷰까지 올리면서 알고리즘 2개씩 올리기... 짜릿하다. ^^

1026: 보물

1. 내 풀이: 성공

이 문제도 별로 어렵지 않게 풀었다!

import sys

N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().strip().split()))
B = list(map(int, sys.stdin.readline().strip().split()))

A.sort()
B.sort(reverse=True)

sum=0
for i, j in zip(A, B):
    sum+= i*j

print(sum)

요즘 코드를 간결하게 짜보자! 에 맛이 들렸다. 진작 그랬어야지
그래서 최대한 짧게 써보자!!! 라는 생각으로 코드를 짜는 듯 하다.

import sys

N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().strip().split()))
B = list(map(int, sys.stdin.readline().strip().split()))

각 숫자 리스트들을 A와 B로 받아준다.

A.sort()
B.sort(reverse=True)

sum=0
for i, j in zip(A, B):
    sum+= i*j

print(sum)

근데 지금 보니까 이렇게 푸는 게 맞나...? 싶다. 왜냐하면 문제에서는 A는 재배열하지 말라고 했기 때문... 일단은 이 풀이대로 설명하고 나중에 한 번 더 풀어봐야겠다.

A는 오름차순으로, B는 내림차순으로 정렬해서 이를 각각 곱하면 최솟값이 나오게 된다!



일단 이 문제는 다음 번에 다시 풀 때까지 다른 풀이는 보류...

profile
정말 알아?

0개의 댓글