1. ๋ฌธ์
์ผ๊ณผ๋ฅผ ๋ง์น๊ณ ๋์์จ ๋์์ด๊ฐ ์ผ๊ณฑ๋ช ์ด ์๋๋ผ ์ํ๋ช ์ด์๋ค. ๋ฐฑ์ค๊ณต๋ถ๋ ์ผ๊ณฑ ๋์์ด์ ํค์ ํฉ์ด 100์ด ๋จ์ ์๊ณ ์์๋ค. ์ํ ๋์์ด์ ํค๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฐฑ์ค๊ณต์ฃผ๋ฅผ ๋์ ์ผ๊ณฑ ๋์์ด๋ฅผ ์ฐพ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ์์ | 20 7 23 19 10 15 25 8 13
2. ๋ด๊ฐ ํผ ๋ฐฉ๋ฒ
9๊ฐ ๋ค ๋ํ ์ดํฉ - 100 = n
2๊ฐ ๋ํ๊ฒ n ์ด ๋์ค๋ฉด ๊ทธ ๋๊ฐ๋ฅผ ๋นผ๋ฒ๋ฆฌ๊ณ ์ถ๋ ฅํ๋ค.
๋๊ฐ์ฉ ๋ํด์ ๋ง๋์ง ์๋ง๋์ง ๋น๊ต๋ฅผ ํด์ค์ผํ๋๋ฐ, ์ด์ค for๋ฌธ์ ๋๋ฉด์ ์ ๋ถ ๋ค ํด๋ด์ผํ๋ค.
3. ๋ฌธ์ ํ์ด
1. 9๊ฐ์ ์ดํฉ์ ๊ตฌํ๊ณ ๊ฐ์ง ๋์์ด 2๊ฐ๋ฅผ ๋ํ ๊ฐ์ ๋นผ์ 100์ด ๋ง์ผ๋ฉด
sum - (arr[i] + arr[j]) === 100
2. splice ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ 2๊ฐ ๊ฐ ์ ๊ฑฐํด๋ฒ๋ฆฌ๊ณ ์ถ๋ ฅํ๋ค.
function solution(arr) {
let answer = arr; // ์์ ๋ณต์ฌ : ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฐ์ ๋ฐฐ์ด์ ๊ฐ๋ฆฌํค๊ณ ์๋ ๊ฒ(์ฃผ์๋ง๋ณต์ฌ)
let sum = arr.reduce((a,b)=> a+b,0);
// 0๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ 9๊ฐ๋๊น 8๋ฒ์งธ ์ธ๋ฑ์ค ๊น์ง ๋๊ฑฐ์ผ. i๋ 0๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ์์
for(let i=0; i<8; i++){
// j๋ i์ ๋ค์๊บผ๋ผ์ +1ํด์ค๋ค. j๋ 1๋ฒ์งธ ์ธ๋ฑ์ค ๋ถํฐ ์์
for(let j=i+1; j<9; j++){
if((sum-(arr[i]+arr[j])) === 100){
arr.splice(j, 1); // ์์๊บผ๋ถํฐ ์ง์ฐ๋ฉด ์ธ๋ฑ์ค๊ฐ ๋ฐ๋์ด๋ฒ๋ ค์ ๋ค์์ ๋ถํฐ ์ง์ด๋ค
arr.splice(i, 1);
}
}
}
return answer;
}
let arr = [20, 7, 23, 19, 10, 15, 25, 8, 13];
console.log(solution(arr));
4. ์ฌ์ฉํ ๊ฐ๋
Array.reduce ๋ฉ์๋ (๋ฐฐ์ด์ ๋์ ๊ฐ, ์ดํฉ ๊ตฌํ๊ธฐ)
reduce ๋ฉ์๋๋ ์์ ์ ํธ์ถํ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ๋๋ฉด์ ํ๋์ ๊ฒฐ๊ณผ๊ฐ์ ๊ตฌํด์ผํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
// ๊ตฌ๋ฌธ ์ ๋ฆฌ
array.reduce(function(๋์ ๊ฐ, ํ์ฌ๊ฐ, ์ธ๋ฑ์ค, ๋ฐฐ์ด){ return ๋์ ๊ฐ + ํ์ฌ๊ฐ }, 0);
// ํ์ดํ ํจ์ ์ฌ์ฉ
array.reduce((๋์ ๊ฐ, ํ์ฌ๊ฐ, ์ธ๋ฑ์ค, ๋ฐฐ์ด) => return ๊ฒฐ๊ณผ, ์ด๊ธฐ๊ฐ);
Array.splice ๋ฉ์๋ (๋ฐฐ์ด ๋ด ํน์ ์ธ๋ฑ์ค ์ ๊ฑฐ)
์๋ณธ ๋ฐฐ์ด์ ์ค๊ฐ์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ค๊ฐ์ ์๋ ์์๋ฅผ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
splice๋ฉ์๋๋ 3๊ฐ์ ๋งค๊ฐ๋ณ์๊ฐ ์์ผ๋ฉฐ ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝํ๋ค.
// ๊ตฌ๋ฌธ ์ ๋ฆฌ
๋ฐฐ์ด.splice(์ธ๋ฑ์ค, 1) // ์ธ๋ฑ์ค์ ์๋ 1๊ฐ ์์ ์ ๊ฑฐํ๋ค
const arr = [1, 2, 3, 4];
const result = arr.splice(1, 2, 20, 30);
// ์๋ณธ ๋ฐฐ์ด์ ์ธ๋ฑ์ค 1๋ถํฐ 2๊ฐ์ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๊ทธ ์๋ฆฌ์ ์๋ก์ด ์์ 20, 30์ ์ฝ์
ํ๋ค.
์ด์ค for๋ฌธ ์์ ๋ฅผ ๋ ํ๊ณ ๊ณต๋ถ๋ฅผ ํด์ผ๊ฒ ๋ค.
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS์๊ณ ๋ฆฌ์ฆ | ๋ฌธ์ ์ฐพ๊ธฐ (0) | 2021.04.17 |
---|---|
JS์๊ณ ๋ฆฌ์ฆ | A๋ฅผ #์ผ๋ก (0) | 2021.04.17 |
JS์๊ณ ๋ฆฌ์ฆ | 10๋ถ์ (0) | 2021.04.14 |
JS์๊ณ ๋ฆฌ์ฆ | ํ์ (0) | 2021.04.13 |
JS์๊ณ ๋ฆฌ์ฆ | ์ต์๊ฐ ๊ตฌํ๊ธฐ (0) | 2021.04.12 |