๐Ÿชด JavaScript & TypeScript/๐Ÿงฉ Algorithm

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด (filter, sort, ์‚ผํ•ญ์—ฐ์‚ฐ์ž)

๋ จ๋”” 2024. 3. 5. 10:22
SMALL

    https://school.programmers.co.kr/learn/courses/30/lessons/12910?language=javascript

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

*

์ฐธ๊ณ ๋กœ ๋ฐฐ์—ด ์›์†Œ๊ฐœ์ˆ˜ 0์ธ์ง€ (๋นˆ ๋ฐฐ์—ด์ธ์ง€)  ์ฒดํฌ ํ•  ๋•Œ,

arr === (ํ˜น์€ ==) [ ] 

์ด๋Ÿฐ ์‹์œผ๋กœ ์“ฐ๋ฉด ์•ˆ๋œ๋‹ค ! 

 

arr.length == 0   ๊ณผ ๊ฐ™์ด ๋ฐฐ์—ด ์›์†Œ๊ฐœ์ˆ˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” .length ๋ฅผ ์จ์•ผ ํ•œ๋‹ค

 

 

๊ทธ๋ƒฅ .sort( )  ์“ฐ๋ฉด, ์ˆซ์ž๋„ ASCII ๋ฌธ์ž ์ˆœ์„œ๋Œ€๋กœ (๋ฌธ์ž์ฒ˜๋Ÿผ)  ๋ฐฐ์—ด๋˜์–ด,  ๋งจ ์•ž์ž๋ฆฌ ์ˆ˜ ์šฐ์„ ์œผ๋กœ ๋ฐฐ์—ด๋˜๋‹ˆ

(์˜ค๋ฆ„์ฐจ์ˆœ 5, 10 ์ด ์•„๋‹ˆ๋ผ => 10, 5 ๋กœ ๋ฐฐ์—ด๋จ   * ์•ž์ž๋ฆฌ 1 < 5 ์ด๊ธฐ ๋•Œ๋ฌธ)

sort ( ) ์•ˆ์— compareFunction์„ ์จ์ค˜์•ผ ํ•จ

sort((a, b => a -b)   ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ (๋ฐ˜๋Œ€๋กœ b - a ๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ)

-----------

sort((a, b => a -b) 

๋‘ ์š”์†Œ๋ฅผ a, b๋กœ์„œ ์ „๋‹ฌํ•ด์„œ a - b๋กœ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•œ ํ›„์—

a > b์ด๋ฉด ์–‘์ˆ˜, a < b์ด๋ฉด ์Œ์ˆ˜๋ฅผ ๋ฆฌํ„ด => ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ.

 

 

 

๋‚ด ๋‹ต์•ˆ ์ฝ”๋“œ

function solution(arr, divisor) {
    
    const dividedArr = arr.filter(e => e % divisor === 0).sort((a, b) => a-b);
    
    if (dividedArr.length == 0) {
         dividedArr.push(-1);
    }
    
    return dividedArr;
}

 

์ฒ˜์Œ์— ์œ„ ์ฒ˜๋Ÿผ ์ฝ”๋“œ ์ž‘์„ฑํ–ˆ๋‹ค๊ฐ€, ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์จ์„œ ๋ฐ”๋กœ return ํ•˜๋Š” ์‹์œผ๋กœ ์ค„์—ฌ๋ดค๋‹ค.

 

function solution(arr, divisor) {
    const dividedArr = arr.filter(e => e % divisor === 0).sort((a, b) => a-b);
    return dividedArr.length == 0 ? [-1] : dividedArr ;
}

 

SMALL