๐Ÿ‘’ ๋ญ? JS๋กœ PS๋ฅผ ํ•œ๋‹ค๊ณ ?

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][JS / Javascript] ํŠœํ”Œ

์„ ๋‹ฌ 2023. 5. 17. 23:40
๋ฐ˜์‘ํ˜•

https://school.programmers.co.kr/learn/courses/30/lessons/64065

 

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

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

programmers.co.kr

 

ํ’€์ด

๋ณธ ๋ฌธ์ œ๋Š” ์ธํ’‹ ๋ฌธ์ž์—ด์„ ์ด์ค‘ ๋ฐฐ์—ด๋กœ ํŒŒ์‹ฑํ•ด์ฃผ๋Š” ๊ณผ์ •์ด ๊ฝค๋‚˜ ๋ณต์žกํ–ˆ๋‹ค. (JS ์•„๋‹ˆ๋ฉด ํ’€์ง€ ์•Š์•˜์„ ๋“ฏ ํ•˜๋‹ค.)

let arr = s.slice(0,-2).slice(2).split("},{").map(v => v.split(",").map(j => parseInt(j)))

๋ฌธ์ž์—ด์˜ ๋งจ ์•ž {{ ์™€ ๋งจ ๋’ค }} ์ด๋ ‡๊ฒŒ ์ค‘๊ด„ํ˜ธ ๋‘๊ฐœ์”ฉ ์—†์• ์ฃผ๊ณ 

},{ ๋ฅผ ๊ธฐ์ค€์œผ๋กœ splitํ•ด์ฃผ๋ฉด 

์ง‘ํ•ฉ์„ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด์ด ์™„์„ฑ๋œ๋‹ค 

ex. ["2","2,1","2,1,3","2,1,3,4"]

 

์ด์ œ map์„ ์ด์šฉํ•ด ๊ฐ ๋ฌธ์ž์—ด๋“ค์„ ์ฝค๋งˆ(,)๋ฅผ ๊ธฐ์ค€์œผ๋กœ splitํ•˜์—ฌ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ 

๋™์‹œ์— ์ด ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ์ •์ˆ˜๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด

์ž…๋ ฅ๊ฐ’ ํŒŒ์‹ฑ์€ ๋๋‚œ๋‹ค

 

function solution(s) {
    let arr = s.slice(0,-2).slice(2).split("},{").map(v => v.split(",").map(j => parseInt(j)))
    arr.sort((a,b) => a.length - b.length)
    let set = new Set();
    for(let i of arr) {
        for(let j of i) {
            set.add(j);
        }
    }
    return [...set]
}

์ด์ œ ํŒŒ์‹ฑ๋œ ๋ฐฐ์—ด์„ ๊ธธ์ด ์ˆœ์„œ๋Œ€๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์ค€ ๋’ค ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋ฉด ๋!

์ค‘๋ณต ์ œ๊ฑฐ๋Š” set์„ ์ด์šฉํ•˜์—ฌ ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ด์ฃผ์—ˆ๋‹ค.

๋ฐ˜์‘ํ˜•