1026๋ฒ: ๋ณด๋ฌผ
์๋ ์์ ์ ์ํ์ด ํญ์ ํฐ ๊ณจ์นซ๊ฑฐ๋ฆฌ์๋ ๋๋ผ๊ฐ ์์๋ค. ์ด ๋๋ผ์ ๊ตญ์ ๊น์ง๋ฏผ์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ด๊ณ ํฐ ์๊ธ์ ๊ฑธ์๋ค.
๊ธธ์ด๊ฐ N์ธ ์ ์ ๋ฐฐ์ด A์ B๊ฐ ์๋ค. ๋ค์๊ณผ ๊ฐ์ด ํจ์ S๋ฅผ ์ ์ํ์.
S = A[0]*B[0] + ... + A[N-1]*B[N-1]
S์ ๊ฐ์ ๊ฐ์ฅ ์๊ฒ ๋ง๋ค๊ธฐ ์ํด A์ ์๋ฅผ ์ฌ๋ฐฐ์ดํ์. ๋จ, B์ ์๋ ์๋ ์ฌ๋ฐฐ์ดํ๋ฉด ์๋๋ค.
S์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
N์ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๊ณ , A์ B์ ๊ฐ ์์๋ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ด ์๋ ์ ์์ด๋ค.
ํ์ด
ย ์ฐ์ ๋ฌธ์ ๋ฅผ ๋ดค์ ๋ B์ ์๋ ์๋ ์ฌ๋ฐฐ์ด ํ๋ฉด ์๋๋ค๊ธธ๋ ์ต๋ํ B๋ฐฐ์ด์ ๊ฑด๋๋ฆฌ์ง ์๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ๋ ค๊ณ ํ๋ค. ๊ธฐ๋ณธ์ ์ธ ์์ด๋์ด๋ A์ ์ต์์ B์ ์ต๋๋ฅผ ๊ณฑํ๊ณ A์ ์ต๋์ B์ ์ต์๋ฅผ ๊ณฑํ๋ ๊ฒ์ด๋ค ์ด๋ ๊ฒ ํ๋ ์ด์ ๋ AB์ ์๊ฐ ์์ด ์๋ ์ ์๋ผ๋ ์ ๊ณผ ํฐ ์ ๋ผ๋ฆฌ ๊ณฑํ ๊ฒฝ์ฐ ํฐ ์์ ์์์๋ฅผ ๊ณฑํ ๋ ๋ณด๋ค ๋ ํฐ ์๊ฐ ๊ณ์ฐ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ฒ์์๋ A๋ฐฐ์ด๋ง ์ ๋ ฌํด์ ํด๊ฒฐํ๋ ค ํ์ง๋ง ๋๋ฌด ๋ณต์กํด์ง๋ฏ๋ก ์ข ๋ ์๊ฐ์ ํด๋ดค๋๋ B์ ์๋ ์๋ ์ค์ ๋ก ์ ๋ ฌ์ ํ๋๋ผ๋ ์๋ฌด์๊ด์ด ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค. ๊ทธ๋์ A๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ B๋ฐฐ์ด์ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ํด์ ๊ฐ n๋ฒ์งธ ์์๋ค๋ผ๋ฆฌ ๊ณฑํ ํ ๋ชจ๋ ๋ํ๋ฉด ์ต์๊ฐ์ด ๋๋ค.
#include #include using namespace std; bool oper (int a, int b){ return a>b; } int n, i, A[1000], B[1000],sum; int main(){ scanf("%d", &n); for (i = 0; i < n; i++){ scanf("%d", &A[i]); } for (i = 0; i < n; i++){ scanf("%d", &B[i]); } std::sort(A,A+n); std::sort(B,B+n,oper); for (i = 0; i < n; i++){ sum+=A[i]*B[i]; } printf("%d", sum); return 0; }















