[๋ฐฑ์ค 11034๋ฒ] [๐ฅ4] ๋ณด๋ฌผ(python)
๋ฌธ์
์๋ ์์ ์ ์ํ์ด ํญ์ ํฐ ๊ณจ์นซ๊ฑฐ๋ฆฌ์๋ ๋๋ผ๊ฐ ์์๋ค. ์ด ๋๋ผ์ ๊ตญ์ ๊น์ง๋ฏผ์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ด๊ณ ํฐ ์๊ธ์ ๊ฑธ์๋ค.
๊ธธ์ด๊ฐ N์ธ ์ ์ ๋ฐฐ์ด A์ B๊ฐ ์๋ค. ๋ค์๊ณผ ๊ฐ์ด ํจ์ S๋ฅผ ์ ์ํ์.
S = A[0] ร B[0] + โฆ + A[N-1] ร B[N-1]
S์ ๊ฐ์ ๊ฐ์ฅ ์๊ฒ ๋ง๋ค๊ธฐ ์ํด A์ ์๋ฅผ ์ฌ๋ฐฐ์ดํ์. ๋จ, B์ ์๋ ์๋ ์ฌ๋ฐฐ์ดํ๋ฉด ์ ๋๋ค.
S์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ A์ ์๋ N๊ฐ์ ์๊ฐ ์์๋๋ก ์ฃผ์ด์ง๊ณ , ์ ์งธ ์ค์๋ B์ ์๋ ์๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค. N์ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๊ณ , A์ B์ ๊ฐ ์์๋ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ด ์๋ ์ ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ S์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
5
1 1 1 6 0
2 7 8 3 1
์์ ์ถ๋ ฅ 1
18
์์ ์ ๋ ฅ 2
3
1 1 3
10 30 20
์์ ์ถ๋ ฅ 2
80
์์ ์ ๋ ฅ 3
9
5 15 100 31 39 0 0 3 26
11 12 13 2 3 4 5 9 1
์์ ์ถ๋ ฅ 3
528
ํํธ
์์ 1์ ๊ฒฝ์ฐ A๋ฅผ {1, 1, 0, 1, 6}๊ณผ ๊ฐ์ด ์ฌ๋ฐฐ์ดํ๋ฉด ๋๋ค.
ํ์ด
A์ ๊ฐ์ฅ ํฐ ๊ฐ๊ณผ B์ ๊ฐ์ฅ ์์ ๊ฐ์ ์๋ก ๊ณฑํด์ฃผ๋ฉด ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด S ๊ฐ์ด ์ต์๊ฐ ๋๋ค. ๋ฐ๋ผ์ A๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ , B๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ S์ A์ B์ ๊ณฑ์ ๋์ ํด์ฃผ๋ฉด ์ต์ข ์ ์ธ S ๊ฐ์ด ๋์จ๋ค.
์ฝ๋
ver(1)
import sys
# ์
๋ ฅ ๋ฐ๊ธฐ
N = int(sys.stdin.readline()) # ํ๋ ฌ์ ํฌ๊ธฐ
A = list(map(int, input().split())) # ํ๋ ฌ A์ ์์
B = list(map(int, input().split())) # ํ๋ ฌ B์ ์์
S=0 # ๊ฒฐ๊ณผ๊ฐ์ ์ ์ฅํ ๋ณ์
# A์ ์ต๋๊ฐ๊ณผ B์ ์ต์๊ฐ์ ์ฐจ๋ก๋ก ๊ณฑํด ๋ํ๋ค
for _ in range(N) :
A_max = max(A) # A ์ค ์ต๋๊ฐ ์ฐพ๊ธฐ
B_min = min(B) # B ์ค ์ต์๊ฐ ์ฐพ๊ธฐ
S += A_max * B_min # ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๊ณฑํ์ฌ ๊ฒฐ๊ณผ๊ฐ์ ๋ํ๋ค
A.pop(A.index(A_max)) # A์์ ์ต๋๊ฐ ์ ๊ฑฐ
B.pop(B.index(B_min)) # B์์ ์ต์๊ฐ ์ ๊ฑฐ
print(S) # ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ
ver(2)
import sys
# input()๋ณด๋ค ๋น ๋ฅธ ์
๋ ฅ์ ์ํด sys.stdin.readline์ ์ฌ์ฉํฉ๋๋ค.
input = sys.stdin.readline
# ์ฒซ๋ฒ์งธ ์ค์ ์ ์ N์ ์
๋ ฅ๋ฐ์ต๋๋ค.
n = int(input())
# ๋ฆฌ์คํธ A๋ฅผ ์
๋ ฅ๋ฐ์ต๋๋ค.
a = list(map(int,input().split()))
# ๋ฆฌ์คํธ B๋ฅผ ์
๋ ฅ๋ฐ์ต๋๋ค.
b = list(map(int,input().split()))
# ๋ฆฌ์คํธ A๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
a.sort(reverse=True)
# ๋ฆฌ์คํธ B๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
b.sort(reverse=False)
# ๋ ๋ฆฌ์คํธ์ ์ธ๋ฑ์ค๋ณ ๊ณฑ์ ํฉ์ ๊ตฌํ๊ธฐ ์ํด ๋ณ์ s๋ฅผ 0์ผ๋ก ์ด๊ธฐํํฉ๋๋ค.
s = 0
# ๋ฆฌ์คํธ A์ B์ ๊ธธ์ด๋ N์ด๋ฏ๋ก, 0๋ถํฐ N-1๊น์ง ๋ฐ๋ณตํฉ๋๋ค.
for i in range(n):
# A[i]์ B[i]์ ๊ณฑ์ s์ ๋ํฉ๋๋ค.
s += a[i]* b[i]
# s๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
print(s)
๋๊ธ๋จ๊ธฐ๊ธฐ