ํ๋ก๊ทธ๋๋จธ์ค 2๋จ๊ณ : ์ต์๊ฐ ๋ง๋ค๊ธฐ
์ฝ๋ฉํ ์คํธ ์ฐ์ต > ์ฐ์ต๋ฌธ์ > ์ต์๊ฐ ๋ง๋ค๊ธฐ
๐ฉ ๋ฌธ์ ์ค๋ช
๊ธธ์ด๊ฐ ๊ฐ์ ๋ฐฐ์ด A, B ๋๊ฐ๊ฐ ์์ต๋๋ค. ๊ฐ ๋ฐฐ์ด์ ์์ฐ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
๋ฐฐ์ด A, B์์ ๊ฐ๊ฐ ํ ๊ฐ์ ์ซ์๋ฅผ ๋ฝ์ ๋ ์๋ฅผ ๊ณฑํฉ๋๋ค. ์ด๋ฌํ ๊ณผ์ ์ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ ๋ฐ๋ณตํ๋ฉฐ, ๋ ์๋ฅผ ๊ณฑํ ๊ฐ์ ๋์ ํ์ฌ ๋ํฉ๋๋ค. ์ด๋ ์ต์ข
์ ์ผ๋ก ๋์ ๋ ๊ฐ์ด ์ต์๊ฐ ๋๋๋ก ๋ง๋๋ ๊ฒ์ด ๋ชฉํ์
๋๋ค. (๋จ, ๊ฐ ๋ฐฐ์ด์์ k๋ฒ์งธ ์ซ์๋ฅผ ๋ฝ์๋ค๋ฉด ๋ค์์ k๋ฒ์งธ ์ซ์๋ ๋ค์ ๋ฝ์ ์ ์์ต๋๋ค.)
์๋ฅผ ๋ค์ด A = [1, 4, 2] , B = [5, 4, 4] ๋ผ๋ฉด
โ๏ธ A์์ ์ฒซ๋ฒ์งธ ์ซ์์ธ 1, B์์ ์ฒซ๋ฒ์งธ ์ซ์์ธ 5๋ฅผ ๋ฝ์ ๊ณฑํ์ฌ ๋ํฉ๋๋ค. (๋์ ๋ ๊ฐ : 0 + 5(1x5) = 5)
โ๏ธ A์์ ๋๋ฒ์งธ ์ซ์์ธ 4, B์์ ์ธ๋ฒ์งธ ์ซ์์ธ 4๋ฅผ ๋ฝ์ ๊ณฑํ์ฌ ๋ํฉ๋๋ค. (๋์ ๋ ๊ฐ : 5 + 16(4x4) = 21)
โ๏ธ A์์ ์ธ๋ฒ์งธ ์ซ์์ธ 2, B์์ ๋๋ฒ์งธ ์ซ์์ธ 4๋ฅผ ๋ฝ์ ๊ณฑํ์ฌ ๋ํฉ๋๋ค. (๋์ ๋ ๊ฐ : 21 + 8(2x4) = 29)
์ฆ, ์ด ๊ฒฝ์ฐ๊ฐ ์ต์๊ฐ ๋๋ฏ๋ก 29๋ฅผ return ํฉ๋๋ค.
๋ฐฐ์ด A, B๊ฐ ์ฃผ์ด์ง ๋ ์ต์ข
์ ์ผ๋ก ๋์ ๋ ์ต์๊ฐ์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๐ฉ ์ ํ ์กฐ๊ฑด
โ๏ธ ๋ฐฐ์ด A, B์ ํฌ๊ธฐ : 1,000 ์ดํ์ ์์ฐ์
โ ๋ฐฐ์ด A, B์ ์์์ ํฌ๊ธฐ : 1,000 ์ดํ์ ์์ฐ์
๐ฉ ๋ฌธ์ ํ์ด
function solution(A,B){
A.sort((a,b)=>a-b)
B.sort((a,b)=>a-b)
let sum = 0;
for(i=0; i<A.length; i++){
sum += A[i] * B[A.length-1-i]
}
return sum;
}
์ต์๊ฐ ๋ง๋ค๊ธฐ๋ผ๋ฉด ๋ญ... A์์ ๊ฐ์ฅ ์์ ์์ B์์ ๊ฐ์ฅ ํฐ ์๋ฅผ ๊ณฑํ๋ ์์ผ๋ก ํ๋ฉด ๋๊ฒ ์ฃ .
๐ฉ ๋ค๋ฅธ ํ์ด
function solution(A,B){
A.sort((a, b) => a - b)
B.sort((a, b) => b - a)
return A.reduce((total, val, idx) => total + val * B[idx], 0)
}
์ด์ ๋ reduce๋ฅผ ๊ณต๋ถํด์ผ๊ฒ ์ต๋๋ค. ์ ์์๋๋ฉด ์ ์ฉํ๊ฒ ์ธ ์ ์๊ฒ ์ด์.
'Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ํธ๋ ํ์ดํธ ๋ํ (4) | 2022.12.07 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (3) | 2022.12.05 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ํฐ์ผ๋ชฌ (3) | 2022.12.05 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ์์ฐ (2) | 2022.12.04 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ (4) | 2022.12.01 |
๋๊ธ