๋ฌธ์ ๋ด์ฉ
ํ์ด๐โ๏ธ
function solution(numbers) {
const emptyArray = [];
const numCount = numbers.length;
for (let i = 0; i < numCount; i++) {
for (let j = i + 1; j < numCount; j++) {
emptyArray.push(numbers[i] + numbers[j]);
}
}
const sortedArray = emptyArray.sort((a, b) => a - b);
const result = sortedArray.filter(
(value, idx) => sortedArray.indexOf(value) === idx
);
return result;
}
/*
(ํ์ด)
์ด๋ฒ ํ์ด๋ ๊ฒฐ๊ตญ ๋ค๋ฅธ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๊ณ ๋ต์ ์ฐพ์๋ค.
์ด์คfor๋ฌธ์ ์ด์ฉํด์ผ ํ๋ค๋ ๊ฒ์ ๋์น๋ฅผ ์ฑ์ง๋ง ๋ต์ด ์๊พธ ์๋ฑํ๊ฒ ๋์๋๋ฐ ๊ทธ ์ด์ ๋ฅผ ์ฐพ์ง๋ชปํ๋ค.
- ๋ด๊ฐ ํ ํ์ด
function solution(numbers) {
const emptyArray = [];
const numCount = numbers.length
for(let i=0; i<numCount; i++){
for(let j=1; j<numCount; j++){
emptyArray.push(numbers[i] + numbers[j]);
}
}
const sortedArray = emptyArray.sort((a, b) => a - b);
const result = sortedArray.filter((value, idx) => sortedArray.indexOf(value) === idx);
์ ๋ ฌ๊ณผ ์ค๋ณต์์ ์ ๊ฑฐ๋ ์ด๋์ ๋ ์๊ณ ์์๊ธฐ๋ ํ๊ณ ๊ตฌ๊ธ๋งํ๋ฉด ๋์ค์ง๋ง ์ด ๋ถ๋ถ์ ๋ฒ์ด๋์ง ๋ชปํ๋ค.
์
๋ ฅ๊ฐ์ด [2, 1, 3, 4, 1] ์ผ ๊ฒฝ์ฐ result๋ [2,3,4,5,6,7,8] ์์๋ 4๊ฐ ๋๋ฒ ๋ํด์ง 8์ด ๋ฌธ์ ์๊ณ
์
๋ ฅ๊ฐ์ด [5, 0, 2, 7] ์ผ ๊ฒฝ์ฐ result๋ [0,2,4,5,7,9,12,14] ๋ฅผ ๋ฐํํ๊ณ ์ต๋๊ฐ 2๊ฐ ๋ํด์ง 14 ๊ทธ๋ฆฌ๊ณ
0์ด ๋ํด์ ธ ์์๋ก ๋จ๋ ๋ถ๋ถ์ด ์ ๊ทธ๋ฐ์ง ์ ํ ์ดํดํ์ง ๋ชปํ๊ณ ๊ฒฐ๊ตญ ํ์ด๋ฅผ ํ์ธํ๋ค.
}
for(let i=0; i<numCount; i++){
for(let j=1; j<numCount; j++){
emptyArray.push(numbers[i] + numbers[j]);
}
}
๋ฌธ์ ๋ 2์ค for๋ฌธ์ j ์๊ณ ๋๋ i๊ฐ 1์ด ๋๋ฉด j++ ๋ก ์ธํด j๊ฐ 2 ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์์ 3 ์ด๋ ๊ฒ ์ฌ๋ผ๊ฐ๊ฑฐ๋ผ ์๊ฐํ์๋๋ฐ
์ง๊ธ ์๊ฐํ๋ฉด ์ ๊ทธ๋ ๊ฒ ์๊ฐํ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค.. j๋ i์ ๋ฐ๋ณต๋ฌธ 1๋ฒ์ ๋๋ ์ฆ๊ฐํ๋ค๊ฐ ๋ค์ i์ ๋ฐ๋ณต๋ฌธ์ด ๋๋๋ 1๋ก ๋์
์จ๋ค๋ ๊ฑธ ์์๊ณ j = i + 1 ; ๋ก ๊ณ ์น๊ณ ๋์ ์ฑ๊ณตํ๋ค. 2์ค ๋ฐ๋ณต๋ฌธ์ j ๋ถ๋ถ์ ์ ๋๋ก ํ์
ํ์ง ๋ชปํ๊ฒ ์์ฝ๋ค.
const result = sortedArray.filter((value, idx) => sortedArray.indexOf(value) === idx); ์ด ์ค๋ณต ์ ๊ฑฐ๋ฅผ
const result = [...new Set(sortedArray)] <- Set๊ณผ ์คํ๋ ๋ ์ฐ์ฐ์๋ฅผ ์ด์ฉํด ๋ฐฐ์ด์ ์ ๊ฐํ ์ ์๋ค๋ ๊ฒ๋ ์์๋ค.
์ฐพ์๋ณด๋ Set์ ์งํฉ์ ๊ฐ๋
์ด๊ณ O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ์ง๋๋ O(n)์ ์๊ฐ๋ณต์ก๋์ธ filter ๋ณด๋ค๋ Set์ ์ด์ฉํ๋๊ฒ ์ข์๊ฑฐ ๊ฐ๋ค.
*/
- 2์ค for๋ฌธ์ ๊ฑฐ์ ์ฌ์ฉํ ์ ์ด ์๋ค๋ณด๋ j๊ฐ์ด ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง์ ๋ํด ์ง์์ด ์ข ๋ถ์กฑํ๋ค.
- 2๋ฒ์งธ for๋ฌธ์ i๊ฐ ์ฌ๋ผ๊ฐ๋ ๊ฐ์ด ์ฌ๋ผ๊ฐ๊ณ ์ถ๋ค๋ฉด i + 1; ์ ๊ผญ ๊ธฐ์ตํด๋์.
- ์ค๋ณต์์๋ฅผ ์ ๊ฑฐํ๋ Set์ ๋ํด ์ ๋ฆฌํด๋๊ธฐ.
ํ ๋ฆฌ๋๋ ํ์ด๐
function solution(numbers) {
const set = new Set();
for (let i = 0; i < numbers.length; i++) {
for (let j = i + 1; j < numbers.length; j++) {
set.add(numbers[i] + numbers[j]);
}
}
return Array.from(set).sort((a, b) => a - b);
- ๋๊ฐ์ด 2์ค for๋ฌธ์ ์ฌ์ฉ ํ์ง๋ง ๋ฏธ๋ฆฌ Set ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด ๋ณ์์ ์ธ์ ์ต์ํํ๋ค.
- ๊ฐ๋ ์ฑ๋ฉด์์๋ ๋ณด๊ธฐ์ข๊ณ , ๋ณ์์ ์ฌ์ฉ๋ ์ต์ํํ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์์๋ ๐
'์๊ณ ๋ฆฌ์ฆ & ๋ฌธ์ ํ์ด > Programmers-1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฌธ์์ด ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ (0) | 2022.08.27 |
---|---|
๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ (0) | 2022.08.26 |
๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ (0) | 2022.08.24 |
๋๋จธ์ง๊ฐ 1์ด ๋๋ ์ ์ฐพ๊ธฐ (0) | 2022.08.23 |
์์ธ์์ ๊น์๋ฐฉ ์ฐพ๊ธฐ, ์๋ฐ์๋ฐ์๋ฐ์๋ฐ์ (0) | 2022.08.23 |