Study_Develop/์•Œ๊ณ ๋ฆฌ์ฆ˜ | ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ด์–ด ๋ถ™์ธ ์ˆ˜ - js (filter ํ•จ์ˆ˜)

hiijihyun 2023. 7. 27. 16:06
๋ฐ˜์‘ํ˜•

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ด์–ด ๋ถ™์ธ ์ˆ˜ - js 

 

๋ฌธ์ œ

์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฆฌ์ŠคํŠธ num_list๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. num_list์˜ ํ™€์ˆ˜๋งŒ ์ˆœ์„œ๋Œ€๋กœ ์ด์–ด ๋ถ™์ธ ์ˆ˜์™€ ์ง์ˆ˜๋งŒ ์ˆœ์„œ๋Œ€๋กœ ์ด์–ด ๋ถ™์ธ ์ˆ˜์˜ ํ•ฉ์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

์ œํ•œ ์‚ฌํ•ญ

2 ≤ num_list์˜ ๊ธธ์ด ≤ 10
1 ≤ num_list์˜ ์›์†Œ ≤ 9
num_list์—๋Š” ์ ์–ด๋„ ํ•œ ๊ฐœ์”ฉ์˜ ์ง์ˆ˜์™€ ํ™€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ
num_list result
[3, 4, 5, 2, 1] 393
[5, 7, 8, 3] 581

 

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

 

ํ™€์ˆ˜๋งŒ ์ด์–ด ๋ถ™์ธ ์ˆ˜๋Š” 351์ด๊ณ  ์ง์ˆ˜๋งŒ ์ด์–ด ๋ถ™์ธ ์ˆ˜๋Š” 42์ž…๋‹ˆ๋‹ค. ๋‘ ์ˆ˜์˜ ํ•ฉ์€ 393์ž…๋‹ˆ๋‹ค.

 

solution.js

filter ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ํ’€์ด>

function solution(num_list) {
    const a = num_list.filter(el=>(el%2===1))
    const b= num_list.filter(el=>(el%2===0))
    
    return Number(a.join(''))+Number(b.join(''))
}

- ํ™€์ˆ˜๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด์–ด ๋ฐฐ์—ด a ์— ์ €์žฅ

 

- ์ง์ˆ˜๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด์–ด b์— ์ €์žฅ

 

- a ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ๋ฌธ์ž์—ด๋กœ ํ•จ์น˜๊ณ , ์ด๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜

 

- b ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ๋ฌธ์ž์—ด๋กœ ํ•ฉ์น˜๊ณ , ์ด๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜

 

- ์œ„์—์„œ ์–ป์€ ๋‘ ์ˆซ์ž์˜ ํ•ฉ์„ ๋ฐ˜ํ™˜

 

 

reduce ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ํ’€์ด>

function solution(num_list) {
    const { oddSum, evenSum } = num_list.reduce((acc, el) => {
        if (el % 2 === 1) {
            acc.oddSum.push(el);
        } else {
            acc.evenSum.push(el);
        }
        return acc;
    }, { oddSum: [], evenSum: [] });

    return Number(oddSum.join('')) + Number(evenSum.join(''));
}

 

filter() ?

 

filter() ๋ฉ”์„œ๋“œ๋Š” ์ฃผ์–ด์ง„ ํ•จ์ˆ˜์˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

console.log(result);
// Expected output: Array ["exuberant", "destruction", "present"]