
Published 2022. 7. 16. 17:14
/*
https://school.programmers.co.kr/learn/courses/30/lessons/68644
๋ฌธ์ ์ค๋ช
์ ์ ๋ฐฐ์ด numbers๊ฐ ์ฃผ์ด์ง๋๋ค. numbers์์ ์๋ก ๋ค๋ฅธ ์ธ๋ฑ์ค์ ์๋ ๋ ๊ฐ์ ์๋ฅผ ๋ฝ์ ๋ํด์ ๋ง๋ค ์ ์๋ ๋ชจ๋ ์๋ฅผ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
numbers์ ๊ธธ์ด๋ 2 ์ด์ 100 ์ดํ์
๋๋ค.
numbers์ ๋ชจ๋ ์๋ 0 ์ด์ 100 ์ดํ์
๋๋ค.
์
์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ #1
2 = 1 + 1 ์
๋๋ค. (1์ด numbers์ ๋ ๊ฐ ์์ต๋๋ค.)
3 = 2 + 1 ์
๋๋ค.
4 = 1 + 3 ์
๋๋ค.
5 = 1 + 4 = 2 + 3 ์
๋๋ค.
6 = 2 + 4 ์
๋๋ค.
7 = 3 + 4 ์
๋๋ค.
๋ฐ๋ผ์ [2,3,4,5,6,7] ์ return ํด์ผ ํฉ๋๋ค.
์
์ถ๋ ฅ ์ #2
2 = 0 + 2 ์
๋๋ค.
5 = 5 + 0 ์
๋๋ค.
7 = 0 + 7 = 5 + 2 ์
๋๋ค.
9 = 2 + 7 ์
๋๋ค.
12 = 5 + 7 ์
๋๋ค.
๋ฐ๋ผ์ [2,5,7,9,12] ๋ฅผ return ํด์ผ ํฉ๋๋ค.
*/
const solution = (num) => {
const arr = [];
// ๊ฐ ๋๊ฐ๋ฅผ ๋น๊ตํด์ผ ํ๊ธฐ์ ์ด์ค for๋ฌธ ์ฌ์ฉ.
// ๊ฐ์ด ๊ฒน์น์ง ์๊ธฐ ์ํด i๋ 0๋ถํฐ ๋ฐฐ์ด์ -1 ์๋ฆฌ๊น์ง ๋๊ณ , j๋ i + 1๋ฒ์งธ๋ถํฐ ๋ฐฐ์ด ๋๊น์ง ๋๊ฒ ๋ง๋ฆ
for (let i = 0; i < num.length - 1; i++) {
for (let j = i + 1; j < num.length; j++) {
// sum์ ๊ฐ์ ๋ํจ
let sum = num[i] + num[j];
// ์ผํญ์ฐ์ฐ์์ includes ๋ฉ์๋๋ฅผ ์ฌ์ฉํด, ์ด๋ฏธ num[i] + num[j] ๊ฐ์ด ์๋ค๋ฉด null. ์๋ฌด๊ฒ๋ ํ์ง์๊ณ , ๊ฐ์ด ์๋ค๋ฉด ๋ฐฐ์ด์ ๊ฐ์ ํธ์ฌํจ
arr.includes(num[i] + num[j]) ? null : arr.push(num[i] + num[j]);
}
}
// ํธ์ฌ๋ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
arr.sort((a, b) => a - b);
return arr;
};
console.log(solution([2, 1, 3, 4, 1]));
console.log(solution([5, 0, 2, 7]));
๋ฐฐ์ด ์ค๋ณต๊ฐ์ ์ ๊ฑฐํ๋ ค๊ณ ์ด๊ฑฐ์ ๊ฑฐ ์๋ํด๋ณด๋ค๊ฐ ๊ตฌ๊ธ๋ง์ ํตํด includes ๋ฉ์๋๋ฅผ ์์๋ด ์ ์ฉํด์ ํด๊ฒฐ.
'๐ฅ CS > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ (0) | 2022.07.18 |
---|---|
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค - ์ ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ (0) | 2022.07.18 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค - ํ์ค๋ ์ (0) | 2022.07.16 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค - ์ฝ๋ผ์ธ ์ถ์ถ (0) | 2022.07.16 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค - ์ ์ผ ์์ ์ ์ ๊ฑฐํ๊ธฐ (0) | 2022.07.16 |